Quoting Tvrtko Ursulin (2018-01-29 10:34:05) > > On 29/01/2018 09:00, Chris Wilson wrote: > > Quoting Lionel Landwerlin (2018-01-29 08:33:46) > >> This reverts commit 5b54eddd3920e9f6f1a6d972454baf350cbae77e. > >> > >> Conflicts: > >> drivers/gpu/drm/i915/i915_pci.c > >> > >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104805 > >> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@xxxxxxxxx> > > > > Mea culpa, completely didn't realise post-module init loading was a > > thing. > > Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > > > It's still on the low hanging fruit list for reducing our bloat. Ideas? > > i915_pcidata.ko? How far could we go with that, make all gen specific > > code a separate section and unload them after init? > > There is one maybe easy win with DMI_MATCH business. It modpost was > taught to handle string relocs, one could remove the hardcoded string > storage of 4x79 bytes for every DMI_MATCH entry. We have one large-ish > table which is not __initconst in intel_no_lvds, but I haven't looked at > the rest of the kernel - if all other users are mostly __initconst then > the saving wouldn't be that universally interesting. > > One larger code re-org could be to move all genX prefixed functions into > separate .kos and load them dynamically. But it is very difficult to > estimate the saving given how much re-use we have. And the extraction > would probably be quite messy. I was dreaming of some advanced LTO which could mark used sections at runtime linking (would need to be more involved so that it's run after init/probe) and unload the rest. Doing some manual splitting seems like the easy-ish thing to do in the near term, but I'd like to keep a fat i915.ko and retrieve data sections from it on probe (just for the convenience of having only one module). Dream on :) -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx