Message ID | 0f0403a0-476a-6129-8dc6-866d894c9adc@xenosoft.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | VLC doesn't play videos anymore since the PowerPC fixes 5.1-3 | expand |
Le 04/04/2019 à 02:58, Christian Zigotzky a écrit : > On 03 April 2019 at 07:05AM, Christophe Leroy wrote: >> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit : >>> Please test VLC with the RC3 of kernel 5.1. >>> >>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. >>> Another user has already confirmed that [1]. This isn’t an April >>> Fool‘s. ;-) >> >> Could you bisect to identify the guilty commit ? >> >> Thanks >> Christophe >> >>> >>> Thanks >>> >>> [1] >>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 >>> >>> >> > Hello Christophe, > > I have found the problematic patch. The following patch from the PowerPC > fixes 5.1-3 is responsible for the VLC issue. That change is part of the following commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c Just changing back the type of wtom_clock_sec to 32 bits without changing back the loading instruction is likely to give unexpected results on PPC64. Are you using 32 bits or 64 bits powerpc ? Christophe > > diff --git a/arch/powerpc/include/asm/vdso_datapage.h > b/arch/powerpc/include/asm/vdso_datapage.h > index 1afe90ade595..bbc06bd72b1f 100644 > --- a/arch/powerpc/include/asm/vdso_datapage.h > +++ b/arch/powerpc/include/asm/vdso_datapage.h > @@ -82,10 +82,10 @@ struct vdso_data { > __u32 icache_block_size; /* L1 i-cache block size */ > __u32 dcache_log_block_size; /* L1 d-cache log block size */ > __u32 icache_log_block_size; /* L1 i-cache log block size */ > - __s32 wtom_clock_sec; /* Wall to monotonic clock */ > - __s32 wtom_clock_nsec; > - struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ > - __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ > + __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ > + __s32 wtom_clock_nsec; /* Wall to monotonic clock nsec */ > + __s64 wtom_clock_sec; /* Wall to monotonic clock sec */ > + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ > __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ > __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ > }; > > ----- > > Link: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9 > > > I created a patch for solving the VLC issue today. > > vdso_datapage_vlc.patch: > > diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h > b/arch/powerpc/include/asm/vdso_datapage.h > --- a/arch/powerpc/include/asm/vdso_datapage.h 2019-04-03 > 22:56:44.560645936 +0200 > +++ b/arch/powerpc/include/asm/vdso_datapage.h 2019-04-04 > 02:20:09.479361827 +0200 > @@ -82,10 +82,10 @@ struct vdso_data { > __u32 icache_block_size; /* L1 i-cache block > size */ > __u32 dcache_log_block_size; /* L1 d-cache log block > size */ > __u32 icache_log_block_size; /* L1 i-cache log block > size */ > - __u32 stamp_sec_fraction; /* fractional seconds of > stamp_xtime */ > - __s32 wtom_clock_nsec; /* Wall to monotonic > clock nsec */ > - __s64 wtom_clock_sec; /* Wall to monotonic > clock sec */ > - struct timespec stamp_xtime; /* xtime as at > tb_orig_stamp */ > + __s32 wtom_clock_sec; /* Wall to monotonic > clock */ > + __s32 wtom_clock_nsec; > + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ > + __u32 stamp_sec_fraction; /* fractional seconds of > stamp_xtime */ > __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ > __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ > }; > > ----- > > Cheers, > Christian
On 04 April 2019 at 06:00AM, Christophe Leroy wrote: > > > Le 04/04/2019 à 02:58, Christian Zigotzky a écrit : >> On 03 April 2019 at 07:05AM, Christophe Leroy wrote: >>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit : >>>> Please test VLC with the RC3 of kernel 5.1. >>>> >>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. >>>> Another user has already confirmed that [1]. This isn’t an April >>>> Fool‘s. ;-) >>> >>> Could you bisect to identify the guilty commit ? >>> >>> Thanks >>> Christophe >>> >>>> >>>> Thanks >>>> >>>> [1] >>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 >>>> >>>> >>> >> Hello Christophe, >> >> I have found the problematic patch. The following patch from the >> PowerPC fixes 5.1-3 is responsible for the VLC issue. > > That change is part of the following commit: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c > > > Just changing back the type of wtom_clock_sec to 32 bits without > changing back the loading instruction is likely to give unexpected > results on PPC64. > > Are you using 32 bits or 64 bits powerpc ? > > Christophe 64-bit kernel + 32-bit userland for example: - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 64-bit kernel -- Christian > > >> >> diff --git a/arch/powerpc/include/asm/vdso_datapage.h >> b/arch/powerpc/include/asm/vdso_datapage.h >> index 1afe90ade595..bbc06bd72b1f 100644 >> --- a/arch/powerpc/include/asm/vdso_datapage.h >> +++ b/arch/powerpc/include/asm/vdso_datapage.h >> @@ -82,10 +82,10 @@ struct vdso_data { >> __u32 icache_block_size; /* L1 i-cache block size */ >> __u32 dcache_log_block_size; /* L1 d-cache log block size */ >> __u32 icache_log_block_size; /* L1 i-cache log block size */ >> - __s32 wtom_clock_sec; /* Wall to monotonic clock */ >> - __s32 wtom_clock_nsec; >> - struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ >> - __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ >> + __u32 stamp_sec_fraction; /* fractional seconds of >> stamp_xtime */ >> + __s32 wtom_clock_nsec; /* Wall to monotonic clock nsec */ >> + __s64 wtom_clock_sec; /* Wall to monotonic clock sec */ >> + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ >> __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ >> __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ >> }; >> >> ----- >> >> Link: >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9 >> >> >> I created a patch for solving the VLC issue today. >> >> vdso_datapage_vlc.patch: >> >> diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h >> b/arch/powerpc/include/asm/vdso_datapage.h >> --- a/arch/powerpc/include/asm/vdso_datapage.h 2019-04-03 >> 22:56:44.560645936 +0200 >> +++ b/arch/powerpc/include/asm/vdso_datapage.h 2019-04-04 >> 02:20:09.479361827 +0200 >> @@ -82,10 +82,10 @@ struct vdso_data { >> __u32 icache_block_size; /* L1 i-cache block >> size */ >> __u32 dcache_log_block_size; /* L1 d-cache log >> block size */ >> __u32 icache_log_block_size; /* L1 i-cache log >> block size */ >> - __u32 stamp_sec_fraction; /* fractional seconds >> of stamp_xtime */ >> - __s32 wtom_clock_nsec; /* Wall to monotonic >> clock nsec */ >> - __s64 wtom_clock_sec; /* Wall to monotonic >> clock sec */ >> - struct timespec stamp_xtime; /* xtime as at >> tb_orig_stamp */ >> + __s32 wtom_clock_sec; /* Wall to monotonic >> clock */ >> + __s32 wtom_clock_nsec; >> + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ >> + __u32 stamp_sec_fraction; /* fractional seconds of >> stamp_xtime */ >> __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ >> __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ >> }; >> >> ----- >> >> Cheers, >> Christian >
On 04/04/2019 08:44 AM, Christian Zigotzky wrote: > On 04 April 2019 at 06:00AM, Christophe Leroy wrote: >> >> >> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit : >>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote: >>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit : >>>>> Please test VLC with the RC3 of kernel 5.1. >>>>> >>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. >>>>> Another user has already confirmed that [1]. This isn’t an April >>>>> Fool‘s. ;-) >>>> >>>> Could you bisect to identify the guilty commit ? >>>> >>>> Thanks >>>> Christophe >>>> >>>>> >>>>> Thanks >>>>> >>>>> [1] >>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 >>>>> >>>>> >>>> >>> Hello Christophe, >>> >>> I have found the problematic patch. The following patch from the >>> PowerPC fixes 5.1-3 is responsible for the VLC issue. >> >> That change is part of the following commit: >> >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c >> >> >> Just changing back the type of wtom_clock_sec to 32 bits without >> changing back the loading instruction is likely to give unexpected >> results on PPC64. >> >> Are you using 32 bits or 64 bits powerpc ? >> >> Christophe > 64-bit kernel + 32-bit userland for example: > > - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel > - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel > - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 64-bit > kernel Ok, thanks. Can you please try below change: diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S index 1e0bc5955a40..afd516b572f8 100644 --- a/arch/powerpc/kernel/vdso32/gettimeofday.S +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S @@ -98,7 +98,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) * can be used, r7 contains NSEC_PER_SEC. */ - lwz r5,WTOM_CLOCK_SEC(r9) + lwz r5,(WTOM_CLOCK_SEC+LOPART)(r9) lwz r6,WTOM_CLOCK_NSEC(r9) /* We now have our offset in r5,r6. We create a fake dependency Christophe > > -- Christian >> >> >>> >>> diff --git a/arch/powerpc/include/asm/vdso_datapage.h >>> b/arch/powerpc/include/asm/vdso_datapage.h >>> index 1afe90ade595..bbc06bd72b1f 100644 >>> --- a/arch/powerpc/include/asm/vdso_datapage.h >>> +++ b/arch/powerpc/include/asm/vdso_datapage.h >>> @@ -82,10 +82,10 @@ struct vdso_data { >>> __u32 icache_block_size; /* L1 i-cache block size */ >>> __u32 dcache_log_block_size; /* L1 d-cache log block size */ >>> __u32 icache_log_block_size; /* L1 i-cache log block size */ >>> - __s32 wtom_clock_sec; /* Wall to monotonic clock */ >>> - __s32 wtom_clock_nsec; >>> - struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ >>> - __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ >>> + __u32 stamp_sec_fraction; /* fractional seconds of >>> stamp_xtime */ >>> + __s32 wtom_clock_nsec; /* Wall to monotonic clock nsec */ >>> + __s64 wtom_clock_sec; /* Wall to monotonic clock sec */ >>> + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ >>> __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ >>> __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ >>> }; >>> >>> ----- >>> >>> Link: >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9 >>> >>> >>> I created a patch for solving the VLC issue today. >>> >>> vdso_datapage_vlc.patch: >>> >>> diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h >>> b/arch/powerpc/include/asm/vdso_datapage.h >>> --- a/arch/powerpc/include/asm/vdso_datapage.h 2019-04-03 >>> 22:56:44.560645936 +0200 >>> +++ b/arch/powerpc/include/asm/vdso_datapage.h 2019-04-04 >>> 02:20:09.479361827 +0200 >>> @@ -82,10 +82,10 @@ struct vdso_data { >>> __u32 icache_block_size; /* L1 i-cache block >>> size */ >>> __u32 dcache_log_block_size; /* L1 d-cache log >>> block size */ >>> __u32 icache_log_block_size; /* L1 i-cache log >>> block size */ >>> - __u32 stamp_sec_fraction; /* fractional seconds >>> of stamp_xtime */ >>> - __s32 wtom_clock_nsec; /* Wall to monotonic >>> clock nsec */ >>> - __s64 wtom_clock_sec; /* Wall to monotonic >>> clock sec */ >>> - struct timespec stamp_xtime; /* xtime as at >>> tb_orig_stamp */ >>> + __s32 wtom_clock_sec; /* Wall to monotonic >>> clock */ >>> + __s32 wtom_clock_nsec; >>> + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ >>> + __u32 stamp_sec_fraction; /* fractional seconds of >>> stamp_xtime */ >>> __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ >>> __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ >>> }; >>> >>> ----- >>> >>> Cheers, >>> Christian >>
On 04 April 2019 at 11:07AM, Christophe Leroy wrote: > > > On 04/04/2019 08:44 AM, Christian Zigotzky wrote: >> On 04 April 2019 at 06:00AM, Christophe Leroy wrote: >>> >>> >>> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit : >>>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote: >>>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit : >>>>>> Please test VLC with the RC3 of kernel 5.1. >>>>>> >>>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. >>>>>> Another user has already confirmed that [1]. This isn’t an April >>>>>> Fool‘s. ;-) >>>>> >>>>> Could you bisect to identify the guilty commit ? >>>>> >>>>> Thanks >>>>> Christophe >>>>> >>>>>> >>>>>> Thanks >>>>>> >>>>>> [1] >>>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 >>>>>> >>>>>> >>>>> >>>> Hello Christophe, >>>> >>>> I have found the problematic patch. The following patch from the >>>> PowerPC fixes 5.1-3 is responsible for the VLC issue. >>> >>> That change is part of the following commit: >>> >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c >>> >>> >>> Just changing back the type of wtom_clock_sec to 32 bits without >>> changing back the loading instruction is likely to give unexpected >>> results on PPC64. >>> >>> Are you using 32 bits or 64 bits powerpc ? >>> >>> Christophe >> 64-bit kernel + 32-bit userland for example: >> >> - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel >> - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel >> - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 64-bit >> kernel > > Ok, thanks. Can you please try below change: > > diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S > b/arch/powerpc/kernel/vdso32/gettimeofday.S > index 1e0bc5955a40..afd516b572f8 100644 > --- a/arch/powerpc/kernel/vdso32/gettimeofday.S > +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S > @@ -98,7 +98,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) > * can be used, r7 contains NSEC_PER_SEC. > */ > > - lwz r5,WTOM_CLOCK_SEC(r9) > + lwz r5,(WTOM_CLOCK_SEC+LOPART)(r9) > lwz r6,WTOM_CLOCK_NSEC(r9) > > /* We now have our offset in r5,r6. We create a fake dependency > > > Christophe > Hello Christophe, Your patch works! VLC plays videos without any problems! Thank you! Cheers, Christian
On 04 April 2019 at 1:23PM, Christian Zigotzky wrote: > On 04 April 2019 at 11:07AM, Christophe Leroy wrote: >> >> >> On 04/04/2019 08:44 AM, Christian Zigotzky wrote: >>> On 04 April 2019 at 06:00AM, Christophe Leroy wrote: >>>> >>>> >>>> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit : >>>>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote: >>>>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit : >>>>>>> Please test VLC with the RC3 of kernel 5.1. >>>>>>> >>>>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC >>>>>>> issue. Another user has already confirmed that [1]. This isn’t >>>>>>> an April Fool‘s. ;-) >>>>>> >>>>>> Could you bisect to identify the guilty commit ? >>>>>> >>>>>> Thanks >>>>>> Christophe >>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> [1] >>>>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 >>>>>>> >>>>>>> >>>>>> >>>>> Hello Christophe, >>>>> >>>>> I have found the problematic patch. The following patch from the >>>>> PowerPC fixes 5.1-3 is responsible for the VLC issue. >>>> >>>> That change is part of the following commit: >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c >>>> >>>> >>>> Just changing back the type of wtom_clock_sec to 32 bits without >>>> changing back the loading instruction is likely to give unexpected >>>> results on PPC64. >>>> >>>> Are you using 32 bits or 64 bits powerpc ? >>>> >>>> Christophe >>> 64-bit kernel + 32-bit userland for example: >>> >>> - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel >>> - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel >>> - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a >>> 64-bit kernel >> >> Ok, thanks. Can you please try below change: >> >> diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S >> b/arch/powerpc/kernel/vdso32/gettimeofday.S >> index 1e0bc5955a40..afd516b572f8 100644 >> --- a/arch/powerpc/kernel/vdso32/gettimeofday.S >> +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S >> @@ -98,7 +98,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) >> * can be used, r7 contains NSEC_PER_SEC. >> */ >> >> - lwz r5,WTOM_CLOCK_SEC(r9) >> + lwz r5,(WTOM_CLOCK_SEC+LOPART)(r9) >> lwz r6,WTOM_CLOCK_NSEC(r9) >> >> /* We now have our offset in r5,r6. We create a fake dependency >> >> >> Christophe >> > Hello Christophe, > > Your patch works! VLC plays videos without any problems! Thank you! > > Cheers, > Christian Christophe, I also successfully tested the VLC with the RC3 of kernel 5.1 with your patch on openSUSE Tumbleweed PPC64 (64-bit kernel + 64-bit userland) today. VLC works without any problems! Screenshot: https://i.pinimg.com/originals/5e/d4/4b/5ed44b324a7ea2fc541185880e21c165.png Many thanks for your help! :-) Cheers, Christian
diff --git a/arch/powerpc/include/asm/vdso_datapage.h b/arch/powerpc/include/asm/vdso_datapage.h index 1afe90ade595..bbc06bd72b1f 100644 --- a/arch/powerpc/include/asm/vdso_datapage.h +++ b/arch/powerpc/include/asm/vdso_datapage.h @@ -82,10 +82,10 @@ struct vdso_data { __u32 icache_block_size; /* L1 i-cache block size */ __u32 dcache_log_block_size; /* L1 d-cache log block size */ __u32 icache_log_block_size; /* L1 i-cache log block size */ - __s32 wtom_clock_sec; /* Wall to monotonic clock */ - __s32 wtom_clock_nsec; - struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ - __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ + __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ + __s32 wtom_clock_nsec; /* Wall to monotonic clock nsec */ + __s64 wtom_clock_sec; /* Wall to monotonic clock sec */ + struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ };