Christophe Leroy <christophe.le...@csgroup.eu> writes: > Quoting Michael Ellerman <m...@ellerman.id.au>: > >> Christophe Leroy <christophe.le...@csgroup.eu> writes: >>> Le 03/11/2020 à 19:13, Christophe Leroy a écrit : >>>> Le 23/10/2020 à 15:24, Michael Ellerman a écrit : >>>>> Christophe Leroy <christophe.le...@csgroup.eu> writes: >>>>>> Le 24/09/2020 à 15:17, Christophe Leroy a écrit : >>>>>>> Le 17/09/2020 à 14:33, Michael Ellerman a écrit : >>>>>>>> Christophe Leroy <christophe.le...@csgroup.eu> writes: >>>>>>>>> >>>>>>>>> What is the status with the generic C vdso merge ? >>>>>>>>> In some mail, you mentionned having difficulties getting it working on >>>>>>>>> ppc64, any progress ? What's the problem ? Can I help ? >>>>>>>> >>>>>>>> Yeah sorry I was hoping to get time to work on it but haven't been able >>>>>>>> to. >>>>>>>> >>>>>>>> It's causing crashes on ppc64 ie. big endian. >>>>> ... >>>>>>> >>>>>>> Can you tell what defconfig you are using ? I have been able to >>>>>>> setup a full glibc PPC64 cross >>>>>>> compilation chain and been able to test it under QEMU with >>>>>>> success, using Nathan's vdsotest tool. >>>>>> >>>>>> What config are you using ? >>>>> >>>>> ppc64_defconfig + guest.config >>>>> >>>>> Or pseries_defconfig. >>>>> >>>>> I'm using Ubuntu GCC 9.3.0 mostly, but it happens with other >>>>> toolchains too. >>>>> >>>>> At a minimum we're seeing relocations in the output, which is a problem: >>>>> >>>>> $ readelf -r build\~/arch/powerpc/kernel/vdso64/vdso64.so >>>>> Relocation section '.rela.dyn' at offset 0x12a8 contains 8 entries: >>>>> Offset Info Type Sym. Value >>>>> Sym. Name + Addend >>>>> 000000001368 000000000016 R_PPC64_RELATIVE 7c0 >>>>> 000000001370 000000000016 R_PPC64_RELATIVE 9300 >>>>> 000000001380 000000000016 R_PPC64_RELATIVE 970 >>>>> 000000001388 000000000016 R_PPC64_RELATIVE 9300 >>>>> 000000001398 000000000016 R_PPC64_RELATIVE a90 >>>>> 0000000013a0 000000000016 R_PPC64_RELATIVE 9300 >>>>> 0000000013b0 000000000016 R_PPC64_RELATIVE b20 >>>>> 0000000013b8 000000000016 R_PPC64_RELATIVE 9300 >>>> >>>> Looks like it's due to the OPD and relation between the function() >>>> and .function() >>>> >>>> By using DOTSYM() in the 'bl' call, that's directly the dot >>>> function which is called and the OPD is >>>> not used anymore, it can get dropped. >>>> >>>> Now I get .rela.dyn full of 0, don't know if we should drop it explicitely. >>> >>> What is the status now with latest version of CVDSO ? I saw you had >>> it in next-test for some time, >>> it is not there anymore today. >> >> Still having some trouble with the compat VDSO. >> >> eg: >> >> $ ./vdsotest clock-gettime-monotonic verify >> timestamp obtained from kernel predates timestamp >> previously obtained from libc/vDSO: >> [1346, 821441653] (vDSO) >> [570, 769440040] (kernel) >> >> >> And similar for all clocks except the coarse ones. >> > > Ok, I managed to get the same with QEMU. Looking at the binary, I only > see an mftb instead of the mftbu/mftb/mftbu triplet. > > Fix below. Can you carry it, or do you prefer a full patch from me ? > The easiest would be either to squash it into [v13,4/8] > ("powerpc/time: Move timebase functions into new asm/timebase.h"), or > to add it between patch 4 and 5 ?
I can squash it in. cheers