Recent Linux kernel has some code behaviour analyzers which may give helpful notices about errors which may otherwise manifest themselves randomly:
- UBSAN - undefined behaviour sanity checker - KASAN - runtime memory debugger
Whoever has prototypes on hands - please consider building kernel with these options and giving it a run and sharing traces from dmesg. This may slow down things a lot, be prepared.
On Sat, Jul 09, 2016 at 04:22:45AM +0300, Andrey Utkin wrote:
Recent Linux kernel has some code behaviour analyzers which may give helpful notices about errors which may otherwise manifest themselves randomly:
- UBSAN - undefined behaviour sanity checker
- KASAN - runtime memory debugger
Whoever has prototypes on hands - please consider building kernel with these options and giving it a run and sharing traces from dmesg. This may slow down things a lot, be prepared.
Oh, forgot about arch constraints. Is Pyra arm64?
$ grep HAVE_ARCH_KASAN -n `find * | grep Kconfig` arch/arm64/Kconfig:56: select HAVE_ARCH_KASAN if SPARSEMEM_VMEMMAP && !(ARM64_16K_PAGES && ARM64_VA_BITS_48) arch/x86/Kconfig:85: select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP lib/Kconfig.kasan:1:config HAVE_ARCH_KASAN lib/Kconfig.kasan:4:if HAVE_ARCH_KASAN
Hi Andrey,
Am 09.07.2016 um 12:53 schrieb Andrey Utkin andrey_utkin@fastmail.com:
On Sat, Jul 09, 2016 at 04:22:45AM +0300, Andrey Utkin wrote:
Recent Linux kernel has some code behaviour analyzers which may give helpful notices about errors which may otherwise manifest themselves randomly:
- UBSAN - undefined behaviour sanity checker
- KASAN - runtime memory debugger
Whoever has prototypes on hands - please consider building kernel with these options and giving it a run and sharing traces from dmesg. This may slow down things a lot, be prepared.
Oh, forgot about arch constraints. Is Pyra arm64?
No, it is arm32 (Cortex A15).
UBSAN can be enabled and I will try asap:
http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=arch/arm/configs/letux...
$ grep HAVE_ARCH_KASAN -n `find * | grep Kconfig` arch/arm64/Kconfig:56: select HAVE_ARCH_KASAN if SPARSEMEM_VMEMMAP && !(ARM64_16K_PAGES && ARM64_VA_BITS_48) arch/x86/Kconfig:85: select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP lib/Kconfig.kasan:1:config HAVE_ARCH_KASAN lib/Kconfig.kasan:4:if HAVE_ARCH_KASAN
and another requirement is gcc 5.0 or later. I currently use gcc 4.9 (like Debian Jessie).
BR, Nikolaus