From: "Zhigang Gong" <zhigang.gong@linux.intel.com>
To: 'Jeff McGee' <jeff.mcgee@intel.com>
Cc: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
beignet@lists.freedesktop.org, daniel@ffwll.ch
Subject: Re: [PATCH] drm/i915: Export total subslice and EU counts
Date: Mon, 9 Mar 2015 08:10:06 +0800 [thread overview]
Message-ID: <016001d059fd$66ef9680$34cec380$@linux.intel.com> (raw)
In-Reply-To: <20150306184418.GC3263@jeffdesk>
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces@lists.freedesktop.org] On Behalf Of
> Jeff McGee
> Sent: Saturday, March 7, 2015 2:44 AM
> To: Zhigang Gong
> Cc: daniel@ffwll.ch; intel-gfx@lists.freedesktop.org;
> beignet@lists.freedesktop.org; dri-devel@lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] drm/i915: Export total subslice and EU counts
>
> On Thu, Mar 05, 2015 at 12:35:55PM +0800, Zhigang Gong wrote:
> > There is one minor conflict when apply the KMD patch to latest
> > drm-intel-nightly branch. It should be easy to fix.
> >
> > Another issue is that IMO, we should bump libdrm's version number when
> > increase these new APIs. Then in Beignet, we can check the libdrm
> > version at build time and determine whether we will use these new
> > interfaces. Thus, we can avoid breaking beignet on those systems which
> > have previous libdrm/kernel installed.
> >
> Right. I can append a libdrm patch to bump the version. And then I suppose I
> will follow the process to make a new release. Not sure right now how that
> works. First time going through it.
>
> Also, how should we test for the libdrm version and conditionally use the API?
We can check the libdrm version at configuration time and define a macro to
indicate whether we can use these new APIs in beignet.
> Is there a previous example of this in Beignet that I could follow?
Yes, one example is userptr. You can check the usage of DRM_INTEL_USERPTR and HAS_USERPTR
In beignet.
Thanks,
Zhigang Gong.
>
> Jeff
>
> > The other parts of the whole patchset, including patches for
> > KMD/libdrm/Intel gpu tools and Beignet, all look good to me.
> >
> > And I just tested it on BDW and SKL platforms, it works fine.
> >
> > Thanks,
> > Zhigang Gong.
> >
> > On Mon, Mar 02, 2015 at 03:37:32PM -0800, jeff.mcgee@intel.com wrote:
> > > From: Jeff McGee <jeff.mcgee@intel.com>
> > >
> > > Setup new I915_GETPARAM ioctl entries for subslice total and EU
> > > total. Userspace drivers need these values when constructing GPGPU
> > > commands. This kernel query method is intended to replace the PCI
> > > ID-based tables that userspace drivers currently maintain.
> > > The kernel driver can employ fuse register reads as needed to ensure
> > > the most accurate determination of GT config attributes.
> > > This first became important with Cherryview in which the config
> > > could differ between devices with the same PCI ID.
> > >
> > > The kernel detection of these values is device-specific and not
> > > included in this patch. Because zero is not a valid value for any of
> > > these parameters, a value of zero is interpreted as unknown for the
> > > device. Userspace drivers should continue to maintain ID-based
> > > tables for older devices not supported by the new query method.
> > >
> > > For: VIZ-4636
> > > Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/i915_dma.c | 10 ++++++++++
> > > include/uapi/drm/i915_drm.h | 2 ++
> > > 2 files changed, 12 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_dma.c
> > > b/drivers/gpu/drm/i915/i915_dma.c index 053e178..9350ea2 100644
> > > --- a/drivers/gpu/drm/i915/i915_dma.c
> > > +++ b/drivers/gpu/drm/i915/i915_dma.c
> > > @@ -150,6 +150,16 @@ static int i915_getparam(struct drm_device *dev,
> void *data,
> > > case I915_PARAM_MMAP_VERSION:
> > > value = 1;
> > > break;
> > > + case I915_PARAM_SUBSLICE_TOTAL:
> > > + value = INTEL_INFO(dev)->subslice_total;
> > > + if (!value)
> > > + return -ENODEV;
> > > + break;
> > > + case I915_PARAM_EU_TOTAL:
> > > + value = INTEL_INFO(dev)->eu_total;
> > > + if (!value)
> > > + return -ENODEV;
> > > + break;
> > > default:
> > > DRM_DEBUG("Unknown parameter %d\n", param->param);
> > > return -EINVAL;
> > > diff --git a/include/uapi/drm/i915_drm.h
> > > b/include/uapi/drm/i915_drm.h index 6eed16b..8672efc 100644
> > > --- a/include/uapi/drm/i915_drm.h
> > > +++ b/include/uapi/drm/i915_drm.h
> > > @@ -347,6 +347,8 @@ typedef struct drm_i915_irq_wait { #define
> > > I915_PARAM_HAS_COHERENT_PHYS_GTT 29
> > > #define I915_PARAM_MMAP_VERSION 30
> > > #define I915_PARAM_HAS_BSD2 31
> > > +#define I915_PARAM_SUBSLICE_TOTAL 32
> > > +#define I915_PARAM_EU_TOTAL 33
> > >
> > > typedef struct drm_i915_getparam {
> > > int param;
> > > --
> > > 2.3.0
> > >
> > > _______________________________________________
> > > Beignet mailing list
> > > Beignet@lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/beignet
> > _______________________________________________
> > Beignet mailing list
> > Beignet@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/beignet
> _______________________________________________
> Beignet mailing list
> Beignet@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet
next prev parent reply other threads:[~2015-03-09 0:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-02 23:37 [PATCH] drm/i915: Export total subslice and EU counts jeff.mcgee
2015-03-03 1:26 ` Jeff McGee
2015-03-03 8:54 ` Daniel Vetter
2015-03-03 8:56 ` Daniel Vetter
2015-03-04 0:32 ` shuang.he
2015-03-05 4:35 ` Zhigang Gong
2015-03-06 18:44 ` [Beignet] " Jeff McGee
2015-03-09 0:10 ` Zhigang Gong [this message]
2015-03-13 17:03 ` Daniel Vetter
2015-03-06 19:23 ` Jeff McGee
2015-03-09 23:06 ` [PATCH v2] " jeff.mcgee
2015-03-10 7:34 ` shuang.he
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='016001d059fd$66ef9680$34cec380$@linux.intel.com' \
--to=zhigang.gong@linux.intel.com \
--cc=beignet@lists.freedesktop.org \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jeff.mcgee@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.