On Sun, Jan 16, 2022 at 09:34:42PM +0300, Dmitry Osipenko wrote: > 16.01.2022 21:03, Michał Mirosław пишет: > > On Sun, Jan 16, 2022 at 08:54:08PM +0300, Dmitry Osipenko wrote: > >> 16.01.2022 19:02, Michał Mirosław пишет: > >>> To patches that, combined, reduce I2C driver's code by ~2kB and a bit > >>> from runtime overhead for non-Tegra20 or non-Tegra210 builds. > >>> > >>> Michał Mirosław (2): > >>> i2c: tegra: allow DVC support to be compiled out > >>> i2c: tegra: allow VI support to be compiled out > >>> > >>> drivers/i2c/busses/Kconfig | 16 ++++++++++++++++ > >>> drivers/i2c/busses/i2c-tegra.c | 35 +++++++++++++++++++++------------- > >>> 2 files changed, 38 insertions(+), 13 deletions(-) > >>> > >> > >> 2KB is a too small difference to justify the ifdefs and Kconfig entries, > >> IMO. > > > > Maybe I should have mentioned that it's ~20%? With my "embedded" hat on: > > I think it might be small, but sometimes it is the difference between > > bootable kernel or one too big. > > 10KB is a small size too. I'm very doubtful that such changes make any > real difference in practice. > > Much more practical should be to modularize more kernel code. You should > be able to squeeze zImage down to 3MB without any code changes by > toggling more kernel config options to =m. Try to use grate_defconfig > [1] for the base, that is what postmarketOS kernel build uses. For normal system this solution is workable. But for recovery, where you have to fit kernel+initrd in whatever small partition is provided (like eg. in Transformers 8MiB), it becomes a problem from time to time. (In this case, modules make it worse due to additional overhead in kernel and userspace). Best Regards Michał Mirosław