[Mesa-dev] [PATCH 2/2] i965: Context aware user space EU control through application

Lionel Landwerlin lionel.g.landwerlin at intel.com
Tue Jul 24 16:53:36 UTC 2018


On 24/07/18 17:41, Marathe, Yogesh wrote:
> Lionel, Chris,
>
>> -----Original Message-----
>> From: mesa-dev [mailto:mesa-dev-bounces at lists.freedesktop.org] On Behalf
>> Of Lionel Landwerlin
>> Sent: Friday, July 20, 2018 3:31 PM
>> To: Chris Wilson <chris at chris-wilson.co.uk>; Muthukumar, Aravindan
>> <aravindan.muthukumar at intel.com>; mesa-dev at lists.freedesktop.org
>> Subject: Re: [Mesa-dev] [PATCH 2/2] i965: Context aware user space EU control
>> through application
>>
>> On 20/07/18 09:47, Chris Wilson wrote:
>>> Quoting aravindan.muthukumar at intel.com (2018-07-20 09:32:57)
>>>> From: "Muthukumar, Aravindan" <aravindan.muthukumar at intel.com>
>>>>
>>>>    The Patch here is to give control to user/ application to really
>>>>    decide what's the max GPU load it would put. If that can be
>>>>    known in advance, rpcs can be programmed accordingly.
>>>>    This solution has changes across i915,
>>>>    drm and mesa (not limited only to kernel).
>>>>
>>>>    Here, we pass gpu_load_type = {high, medium, low} from application
>>>>    while context is created. Default here is 'High' and applications
>>>>    roughly know if they are going to eat up entire GPU. The typical
>>>>    usecase of 'Low' is idle screen or minor mouse movements. Users can
>>>>    read meaning of high/medium/low for their platform  & then program
>>>>    contexts accordingly. Here gpu_load_type directly translates to
>>>>    number of shader cores/EUs a particular GPU has.
>>>>
>>>>    Signed-off-by: Aravindan Muthukumar <aravindan.muthukumar at intel.com>
>>>>    Signed-off-by: Kedar J Karanje <kedar.j.karanje at intel.com>
>>>>    Signed-off-by: Praveen Diwakar <praveen.diwakar at intel.com>
>>>>    Signed-off-by: Yogesh Marathe <yogesh.marathe at intel.com>
>>>> +/* Dynamic Eu control */
>>>> +struct drm_i915_load_type {
>>>> +       __u32 ctx_id;
>>>> +       __u32 load_type;
>>>> +};
>>>> +
>>>> +/* DYNAMIC EU CONTROL */
>>>> +int
>>>> +brw_hw_context_load_type(struct brw_bufmgr *bufmgr,
>>>> +                        uint32_t ctx_id,
>>>> +                        int load_type) {
>>>> +       struct drm_i915_load_type type = {
>>>> +               .ctx_id = ctx_id,
>>>> +               .load_type = load_type,
>>>> +       };
>>>> +       int err;
>>>> +
>>>> +       err = 0;
>>>> +       if(drmIoctl(bufmgr->fd, DRM_IOCTL_I915_LOAD_TYPE, &type))
>>>> +               err = -errno;
>>> This went through 4 people and none noticed that there already exists
>>> a means to set per-context parameters. And it's even used right next
>>> to this function.
>>>
>>> The word hint needs to be firmly embedded around here.
>>> -Chris
>>> ______
>> Yep,
>>
>> Looks like you want to get involved in this discussion :
>> https://patchwork.freedesktop.org/series/42285/
> I understand this is exposing per context eu config through debugfs. That mostly
> (if not fully) matches the  kernel part of what we wanted to achieve. We have
> additional code in kernel where we categorize based on load type and fix
> a config per platform. For sure the kernel parts can be merged but the proposal
> is different here and its specific to adding this capability through mesa.
>
> Here we are enabling applications to decide load while creating the context and
> making it simple for application programmers by abstracting it.  Also in these kernel
> patches, its seems to be exposing the parameters to user space, are we discussing
> its user space counterpart in mesa or in some other component? If not, I feel this
> is bit different. Can it be a mesa extension? Then any app / process can do this
> without having privilege (root).

Yes, I was just pointing out that you might want to reuse existing 
patches for i915 so that we don't end up with 2 similar interfaces there.
Obviously your extension would still be needed.

-
Lionel

>
>> -
>> Lionel
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev




More information about the mesa-dev mailing list