Assisted reorganization of data structures

Assisted reorganization of data structures.

The kernel git history is littered with patches moving struct members around to improve performance by grouping together related fields and moving apart unrelated ones that cause false sharing.

All this to improve the use of the cache hierarchy, which can lead to great performance improvements.

This is done by careful inspection, painstakingly looking at profiles, can we do better?

Recent additions to processors help and recent improvements in perf to use these hardware facilities to do data-type profiling gets us closer to that.

This talk will look at what we can do to further improve our current toolset to find groups of related fields to automate both finding better struct layouts and to have it in regression testing to avoid messing with good struct layouts when adding new fields.