Hi John,
On Tue, Jul 09, 2019 at 09:02:54PM -0700, John Stultz wrote:
On Fri, Jun 21, 2019 at 3:18 AM Vincenzo Frascino vincenzo.frascino@arm.com wrote:
Provide the arm64 compat (AArch32) vDSO in kernel/vdso32 in a similar way to what happens in kernel/vdso.
The compat vDSO leverages on an adaptation of the arm architecture code with few changes:
- Use of lib/vdso for gettimeofday
- Implementation of syscall based fallback
- Introduction of clock_getres for the compat library
- Implementation of trampolines
- Implementation of elf note
To build the compat vDSO a 32 bit compiler is required and needs to be specified via CONFIG_CROSS_COMPILE_COMPAT_VDSO.
Hey Vincenzo! Congrats on getting this work merged, I know its been a long effort over a number of years!
Though unfortunately, it seems the arm64 vdso code that just landed is breaking AOSP for me.
I see a lot of the following errors: 01-01 01:22:14.097 755 755 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3cf2c96c in tid 755 (cameraserver), pid 755 (cameraserver) 01-01 01:22:14.112 759 759 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3cf2c96c in tid 759 (android.hardwar), pid 759 (android.hardwar) 01-01 01:22:14.120 756 756 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3cf2c96c in tid 756 (drmserver), pid 756 (drmserver)
Which go away if I revert the vdso merge that went in via tip/timers.
I tried to bisect things down a bit, but as some later fixes are required (at one point, date was returning the start epoch and never increasing), this hasn't worked too well. But I'm guessing since I see: "CROSS_COMPILE_COMPAT not defined or empty, the compat vDSO will not be built", and the system is half working, I'm guessing this is an issue with just the 32bit code failing. While I can try to sort out the proper CROSS_COMPILE_COMPAT in my build environment, I assume userland shouldn't be crashing if that value isn't set.
Any chance this issue has already been raised?
First I've seen of it, although Vincenzo is likely to know better than me. In the meantime, please can you share your .config?
Thanks,
Will