From: Jani Nikula <jani.nikula@intel.com>
To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Intel-gfx@lists.freedesktop.org, Michael Cheng <michael.cheng@intel.com>
Subject: Re: [Intel-gfx] [RFC 0/2] Compile out integrated
Date: Wed, 02 Feb 2022 14:41:12 +0200 [thread overview]
Message-ID: <874k5htp93.fsf@intel.com> (raw)
In-Reply-To: <332c5305-9810-0b82-a95b-86b5940b8a55@linux.intel.com>
On Wed, 02 Feb 2022, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
> On 02/02/2022 11:20, Jani Nikula wrote:
>> On Wed, 02 Feb 2022, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
>>> On 01/02/2022 17:28, Lucas De Marchi wrote:
>>>> On Tue, Feb 01, 2022 at 07:09:14PM +0200, Jani Nikula wrote:
>>>>> On Tue, 01 Feb 2022, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
>>>>>> On Tue, Feb 01, 2022 at 11:15:31AM +0000, Tvrtko Ursulin wrote:
>>>>>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>>>>
>>>>>>> Quicky and dirty hack based on some old ideas. Thought maybe the
>>>>>>> approach might
>>>>>>> interest the Arm port guys. But with IS_GEN_RANGE removed easy gains
>>>>>>> are not so
>>>>>>> big so meh.. Maybe some more easy wins with IS_DISPLAY_VER but I
>>>>>>> haven't looked
>>>>>>> into that side.
>>>>>>>
>>>>>>> 3884664 449681 6720 4341065 423d49 i915.ko.tip
>>>>>>> 3599989 429034 6688 4035711 3d947f i915.ko.noigp
>>>>>>
>>>>>> By these numbers probably it's hard to justify. Another thing to
>>>>>> consider
>>>>>> is that it's very common to have on the same system both
>>>>>> integrated and discrete - doing this would remove at compile time any
>>>>>> chance of driving the integrated one.
>>>>>
>>>>> I guess the point was, the arm systems won't have integrated, and it's
>>>>> anyway going to be a separate build.
>>>>
>>>> so probably the focus and argument here should not be about size
>>>> reduction. From patch 1 I see:
>>>>
>>>> +config DRM_I915_INTEGRATED_GPU_SUPPORT
>>>> + bool "Support integrated GPUs"
>>>> + default y
>>>> + depends on DRM_I915
>>>> + help
>>>> + Include support for integrated GPUs.
>>>>
>>>> If it's something that depends on arch rather than providing an
>>>> option in menuconfig, then I think it could be some interesting
>>>> investigation. However, I can't see how it would help with removing
>>>> some code paths in the driver (e.g. the clflush() calls we were talking
>>>> about in another patch series) since the code elimination would all
>>>> happen at link time.
>>>
>>> Clflush class of problems is yet another orthogonal set of problems.
>>>
>>> Yes, idea was that the Kconfig option would be selected by Arm, or
>>> deselected by x86, whatever. But there is also a case for letting it be
>>> user visible.
>>>
>>> In general, I thought at least, we should look into not
>>> building/deploying binary code for irrelevant hardware on Arm builds. If
>>> that is clear and agreeable then I think the approach how to get there
>>> is really multi-pronged.
>>>
>>> 1)
>>> What you are partly doing with "clflush" type series. Make Arm relevant
>>> code paths actually compile on Arm.
>>>
>>> 2a)
>>> What I sent in this series - it's simple/easy dead code elimination from
>>> a single compilation unit.
>>>
>>> 2b)
>>> *If* we resurrected GRAPHICS_VER check where "ver" is part of the macro,
>>> eg. not doing "if (GRAPHICS_VER <=> N)" but "if (GRAPHICS_VERN)", or "if
>>> IS_GRAPHICS_VER(N, FOREVER)", then the same approach would be more
>>> effective.
>>>
>>> Because if N or range is the macro parameter, we can make it dead code
>>> based on Kconfig.
>>>
>>> This is what I demonstrated few years ago by being able to compile out
>>> ~3rd of a driver when selecting only execlists platforms, AFAIR.
>>>
>>> And which is why I was a bit unhappy this was getting removed not so
>>> long ago.
>>
>> The main problem with that, as well as the Kconfig here, is maintenance.
>>
>> If it's fancy but unused, it's just added complexity for no benefit,
>> just the drawbacks. Every change needs to take the complexity into
>> account. If it's unused and untested, it's just going to bitrot anyway.
>>
>> For example, I think a config option for disabling igfx should have both
>> build and runtime testing in place before we should consider taking on
>> the burden of maintaining it. Otherwise it's just haphazard struggle,
>> and the burden falls on a handful of interested people working on it on
>> the side, occasionally fixing things as they break. And they'll break
>> because nobody else cares.
>>
>> If someone shows up and says i915.ko is too big, they need to be serious
>> enough to invest in maintaining the configurable size reductions, per
>> target platform.
>
> Yeah no disagreement for the most part.
>
> Whether there is a cheap way (as in maintenance/intrusiveness) which
> brings gains large enough.
>
> In my view it is also not a question of "too big" per se, but a question
> of professional pride of doing things properly, even if it is hard,
> instead of padding the binaries with dead code and sending them on
> rounds over the world, to "use electrons" unreachable on uncountable
> hypothetical customer machines and travel as updates over undersea
> cables for no use. :D Just because we, sitting on the source/upstream,
> decided it's too hard.
Well, not because it's too hard, but mostly because of picking the
battles? Also a matter of taste in what constitutes as professional
pride. If it's worth doing, it's worth doing properly?
But I guess we are, mostly, on the same page here.
BR,
Jani.
>
> Not pressuring anything though, we are not quite there yet to worry
> about scale deployments of Intel discrete on !x86. There is time. :)
> I've thrown some seeds out there, if they don't take, they don't. It is
> fine to tackle the "make it build and work" steps first.
>
> Regards,
>
> Tvrtko
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2022-02-02 12:41 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-01 11:15 [Intel-gfx] [RFC 0/2] Compile out integrated Tvrtko Ursulin
2022-02-01 11:15 ` [Intel-gfx] [RFC 1/2] igp kconfig Tvrtko Ursulin
2022-02-01 11:15 ` [Intel-gfx] [RFC 2/2] jsl/ehl Tvrtko Ursulin
2022-02-01 11:26 ` Jani Nikula
2022-02-01 13:17 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Compile out integrated Patchwork
2022-02-01 13:18 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-02-01 13:47 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-02-01 16:55 ` [Intel-gfx] [RFC 0/2] " Lucas De Marchi
2022-02-01 17:09 ` Jani Nikula
2022-02-01 17:28 ` Lucas De Marchi
2022-02-02 10:26 ` Tvrtko Ursulin
2022-02-02 11:20 ` Jani Nikula
2022-02-02 12:17 ` Tvrtko Ursulin
2022-02-02 12:41 ` Jani Nikula [this message]
2022-02-02 16:26 ` Lucas De Marchi
2022-02-08 10:31 ` Tvrtko Ursulin
2022-02-08 20:34 ` Lucas De Marchi
2022-02-01 17:37 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for " Patchwork
2022-02-02 11:51 ` [Intel-gfx] [RFC 0/2] " Tvrtko Ursulin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874k5htp93.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=Intel-gfx@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
--cc=michael.cheng@intel.com \
--cc=tvrtko.ursulin@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox