Messages in this thread | | | From | Damien Le Moal <> | Subject | Re: [PATCH] riscv: defconfig: k210: Disable CONFIG_VT | Date | Wed, 25 Nov 2020 11:00:08 +0000 |
| |
On 2020/11/25 18:26, Geert Uytterhoeven wrote: > Hi Damien, > > On Wed, Nov 25, 2020 at 10:02 AM Damien Le Moal <Damien.LeMoal@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.LeMoal@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.
> > Gr{oetje,eeting}s, > > Geert >
-- Damien Le Moal Western Digital Research
| |