Research impact on kernel size for multi-platform configs

Registered by Deepak Saxena

When building a multi-platform kernel, the kernel runtime image will end up with residual text and data for platforms on which we are running on. This is primarily platform-specific initialization code and static data tables and it will also have an affect on the size of the kernel binary image. As part of this blueprint, we will gather some data to better understand this affect.

Blueprint information

Status:
Started
Approver:
Deepak Saxena
Priority:
Low
Drafter:
None
Direction:
Approved
Assignee:
Arnd Bergmann
Definition:
Approved
Series goal:
Proposed for trunk
Implementation:
Slow progress
Milestone target:
milestone icon backlog
Started by
Jakub Pavelek

Related branches

Sprints

Whiteboard

Meta:
Roadmap id: CARD-114
Headline: Multi-platform kernel size investigated
Acceptance: Analysis results are available, shared and accepted by Deepak

[jakub-pavelek 2013-01-07] Adding a link to exported spreadsheet with static sizes here https://wiki.linaro.org/WorkingGroups/KernelWIP/Consolidation?action=AttachFile&do=get&target=static_data_size_0.1.ods
[jakub-pavelek 2013-02-25] Reassigning to Arnd. 13.01 -> 13.03
[jakub-pavelek 2013-03-25] Nothing done in last month. Revisit for 13.04 planning, refactor work items.
[jakub-pavelek 2013-05-07] Detaching from CARD-114 and moving to follow-up card. Low priority for now, backlogged.

(?)

Work Items

Work items for 12.11:
Fix Ux500 Snowball board boot time issue (2012-11-26): DONE
Kernel version for verification will be 3.6 for u8500 and latest for other platforms (Nov 29): DONE

Work items for 12.12:
Identify appropriate defconfig file: u8500_defconfig, vexpress_defconfig: DONE
Kernel static size measurement (Dec 01): DONE
Currently we can start with 'free' and '/proc/modules': DONE
Finalize dts file to use across all the platforms(Dec 14): DONE
zImage with built-in's(Dec 01): DONE
zImage static size with and without init sections (Dec 01): DONE
Setup mmc rootfs for runtime size analysis for U8500 platform (Dec 17): DONE
Setup qemu-linaro for runtime size analysis for vexpress platform (Dec 08): DONE
Prepare mmc based rootfs with *.ko's (Dec 12): DONE
Identify the zImage size with built-in and '*.ko' (Dec 19): DONE
Gather kernel image and runtime size data for Ux500 platform (Dec 19): DONE
Gather kernel image and runtime size data for Versatile express platform (Dec 19): DONE
Gather kernel image and runtime size data for i.MX platform(Dec 18): DONE
For each platform, identify FDT'd Modules that are participating for .ko(Dec 19): DONE
zImage with *.ko's(Dec 18): DONE
Prepare mmc based rootfs with *.ko's for u8500 platform(Dec 17): DONE
Identify the number of pages used before and after installing the modules(Dec 19): DONE
Followup with shawnGuo for runtime size data gathering on i.MX platform(Dec 18): DONE
Identify the combined number of pages used by kernel and modules right after the boot, Note: updated google doc (Dec 20): DONE
Runtime size of kernel and *.ko's, prepare google doc(Dec 20): DONE

Work items for 13.01:
Identify *.ko with FDT support for Vexpress: DONE
Gather kernel image size combined_kernel/ARCH_MULTIPLATFORM on Vexpress and i.mx(Jan 31): DONE
Gather kernel image and runtime size data for i.MX platform with multiplatform config support(Jan 7): DONE

Work items for 13.02:
Identify *.ko's for i.mx and VExpress for combined kernel for runtime verification (Feb 08): DONE
Gather static and runtime size data for combined kernel on each platform(Feb 08): DONE
Identify possible defconfigs for above listed platforms (Feb 14): DONE
Baseline the defconfig based on multi_v7_defconfig to initiate the combined kernel build for all the platforms which enables ARCH_MULTIPLATFORM support (Feb 14): DONE
Get the combined kernel build ready for all of the above said platforms (Feb 14): DONE
Get the combined kernel build excluding the above said platforms (Feb 14): DONE
Get the combined kernel build for the above said platforms excluding each platform at an iteration (Feb 17): DONE

Work items for 13.05:
Refactor the work items: TODO
Need to identify the utility or method to gather free and used pages: TODO
Extend combined kernel runtime size data verification across mvebu, armada, socfpga, sunxi, highbank vexpress, bcm and i.mx platforms: INPROGRESS
Identify possible driver with FDT and .ko support across the platforms other than i.MX and Vexpress: TODO
Get the module list reviewed for i.MX platform from shawnguo before to gather runtime size data: INPROGRESS

Work items for backlog:
Setup OMAP: panda board with appropriate images: TODO
Gather kernel image and runtime size data for OMAP platform (if OMAP builds multi-kernel): TODO
Identify FDT'd Modules that are participating for .ko: TODO
Identify the combined number of pages used by kernel and modules right after the boot: TODO
Identify appropriate defconfig file: TODO
Build and test multiplatform config support: TODO
zImage static size with and without init sections: TODO
Runtime size of kernel and *.ko's: TODO
Finalize dts file to use: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.