[Intel-gfx] [RFC 00/15] Selectable platform support
Chris Wilson
chris at chris-wilson.co.uk
Fri Feb 9 11:19:44 UTC 2018
Quoting Tvrtko Ursulin (2018-02-09 11:01:08)
>
> On 09/02/18 10:50, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2018-02-09 10:48:23)
> >>
> >> On 08/02/2018 13:05, Tvrtko Ursulin wrote:
> >>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >>>
> >>> For Joonas basically. :)
> >>>
> >>> Rough goal - add Kconfig options to turn off supported platforms and count on
> >>> compiler DCE to make the driver smaller.
> >>>
> >>> Tested as so much that it boots and renders on Skylake with all platforms/gens
> >>> older than Gen8 turned off.
> >>>
> >>> text data bss dec hex filename
> >>> 1502847 54223 2888 1559958 17cd96 i915.ko.original
> >>> 1375647 51939 2888 1430474 15d3ca i915.ko.gen8+
> >>
> >> I've finished this today (all platforms plus some more details and
> >> changes) but wont' post it again. Instead who is interested can see it
> >> in my freedesktop git repo - people.freedesktop.org/~tursulin/drm-intel
> >> platform-kconfig - but for some reason it is not showing in GitWeb any
> >> longer.
> >>
> >> Anyway.. with the latest build the i915.ko size goes from 15600073 to
> >> 1256697 when I enable only Skylake via Kconfig. This is 296kiB and close
> >> to 20% saving.
> >
> > Could you post ./scripts/bloat-o-meter?
>
> It's big:
Ok. Looking at some examples in intel_ringbuffer.c,
> i965_emit_bb_start 112 - -112
> ring_request_alloc 1640 1145 -495
It can prune away the vfuncs with the local tests, but it can't
determine that the majority of intel_ringbuffer.c isn't used. Other
than LTO for cross compilation unit, one problem will be
#define HAS_LOGICAL_RING_CONTEXTS(dev_priv) \
((dev_priv)->info.has_logical_ring_contexts)
#define HAS_LOGICAL_RING_PREEMPTION(dev_priv) \
((dev_priv)->info.has_logical_ring_preemption)
#define HAS_EXECLISTS(dev_priv) HAS_LOGICAL_RING_CONTEXTS(dev_priv)
where we are strongly advocating using static GEN lists rather than
describing capabilities.
Ideas? A long time ago, we wanted a static INTEL_INFO. I think now we
have driver_caps, we try to kill off mkwrite_intel_info() and where
need be use INTEL_INFO() && DRIVER_CAPS().
Tvrtko, how easy do you think it will be to go from Kconfig to
#define INTEL_INFO(dev_priv) (&platform_info)
?
-Chris
More information about the Intel-gfx
mailing list