On 2020/11/25 20:00, Damien Le Moal wrote: > On 2020/11/25 18:26, Geert Uytterhoeven wrote: >> Hi Damien, >> >> On Wed, Nov 25, 2020 at 10:02 AM Damien Le Moal <damien.lem...@wdc.com> >> wrote: >>> On 2020/11/25 17:51, Geert Uytterhoeven wrote: >>>> On Wed, Nov 25, 2020 at 7:14 AM Damien Le Moal <damien.lem...@wdc.com> >>>> wrote: >>>>> On 2020/11/25 3:57, Geert Uytterhoeven wrote: >>>>>> There is no need to enable Virtual Terminal support in the Canaan >>>>>> Kendryte K210 defconfigs, as no terminal devices are supported and >>>>>> enabled. Hence disable CONFIG_VT, and remove the no longer needed >>>>>> override for CONFIG_VGA_CONSOLE. >>>>>> >>>>>> This reduces kernel size by ca. 65 KiB. >>>>> >>>>> Indeed, nice saving. Just tested, and all is good. >>>> >>>> I used my old script[1] to check the impact of disabling config options. >> >>>> I haven't done enough riscv kernel development yet to assess if I need >>>> CONFIG_FRAME_POINTER or not. >>> >>> Disabling it significantly reduced code size for me. Since the series is >>> more >>> stable now, it is not really needed, so I disabled it in the defconfig. >>> >>> I was just fiddling with CONFIG_UNIX98_PTYS. Disabling it is OK with the >>> simple >>> busybox userspace (no telnet/xterm like app running). But it saves only >>> about >>> 1KB with my toolchain (gcc 9.3). So I left that one enabled. I am surprised >>> that >>> you see 16K size impact... How big is your image ? >>> >>> For me, it is 1.768 MB right now for the sdcard defconfig, with CONFIG_VT >>> disabled and ext2 enabled. >> >> It might depend on how you measure. "size" says 15 KiB impact for UNIX98 >> ptys, while bloat-o-meter reported less than 7 (my script uses "size"). > > I look at the size of the arch/riscv/boot/loader.bin file since that is what > gets loaded in RAM and booted. It is significantly smaller than vmlinux file > size. E.g. for the sd card defconfig, I have: > > vmlinux: 2369920 B > loader.bin: 1751250 B > >> I'm at 1.88 MiB, with ext4 and without frame pointers. >> I also got rid of the EFI partition support, and a few I/O schedulers: >> >> +CONFIG_PARTITION_ADVANCED=y >> +# CONFIG_EFI_PARTITION is not set >> +# CONFIG_MQ_IOSCHED_DEADLINE is not set >> +# CONFIG_MQ_IOSCHED_KYBER is not set > > I have all of these disabled. The schedulers are forced disabled in the sdcard > defconfig. > > I also noticed that it hugely depend on the compiler. Using the buildroot > generated rv64 gcc 10, the kernel image goes up to almost 2 MB. So for the > kernel, I keep using the bootlin precompiled gcc 9.3: > > https://toolchains.bootlin.com/ > > Just noticed that they now have a 10.2 version available. Will try it out.
Correction: my PATH was actually pointing to the Fedora riscv64 gcc from the distro rpm package which is version 10.2, not 9.3. > >> >> Gr{oetje,eeting}s, >> >> Geert >> > > -- Damien Le Moal Western Digital Research