[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

C3600 kernel/64bit 4.* slow IO due to -mlong-calls

I am experiencing a very annoying behavior with my HPPA C3600: if I
compile the (linux) kernel with  -mlong-calls then the IO (e.g. file
copy) becomes very slow, and the PCI becomes unstable (i.e. it crashes
the machine)

kernel  gcc     binutils    with mlong    without mlong
4.15.7  4.9.3   2.25.1     13.4 MB/s    27.0 MB/s
4.15.7  6.4.0   2.25.1     13.4 MB/s    27.0 MB/s
4.15.7  6.4.0   2.29.1     14.4 MB/s    25.0 MB/s

these tests were performed with

dd if=/dev/zero of=here bs=1k count=100000

-mlong-calls is enabled in the kernel by "CONFIG_MLONGCALLS"

the help-guide says "If you configure the kernel to include many
drivers built-in instead as modules, the kernel executable may become
too big, so that the linker will not be able to resolve some long
branches and fails to link your vmlinux kernel. In that case enabling
this option will help you to overcome this limit by using the
-mlong-calls compiler option. Usually you want to say N here, unless
you e.g. want to build a kernel which includes all necessary drivers
built-in and which can be used for TFTP booting without the need to
have an initrd ramdisk. Enabling this option will probably slow down
your kernel"

I need -mlong-calls because I need to compile the kernel without
kernel-modules, all built-in, that makes the size of the kernel of
about 23Mbytes, thus without -mlong-calls the linker fails to "link"

let me know

Reply to: