On 24/07/18 17:41, Marathe, Yogesh wrote:
Lionel, Chris,

-----Original Message-----
From: mesa-dev [mailto:[email protected]] On Behalf
Of Lionel Landwerlin
Sent: Friday, July 20, 2018 3:31 PM
To: Chris Wilson <[email protected]>; Muthukumar, Aravindan
<[email protected]>; [email protected]
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 [email protected] (2018-07-20 09:32:57)
From: "Muthukumar, Aravindan" <[email protected]>

   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 <[email protected]>
   Signed-off-by: Kedar J Karanje <[email protected]>
   Signed-off-by: Praveen Diwakar <[email protected]>
   Signed-off-by: Yogesh Marathe <[email protected]>
+/* 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to