* [PATCH] drm/i915: Check for get_pages instead of shmem (filp) @ 2016-02-06 1:48 Ben Widawsky 2016-02-08 12:58 ` ✓ Fi.CI.BAT: success for " Patchwork ` (4 more replies) 0 siblings, 5 replies; 14+ messages in thread From: Ben Widawsky @ 2016-02-06 1:48 UTC (permalink / raw) To: Intel GFX; +Cc: Ben Widawsky This behavior of checking for a shmem backed GEM object was introduced here: commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab Author: Brad Volkin <bradley.d.volkin@intel.com> Date: Tue Feb 18 10:15:45 2014 -0800 drm/i915: Refactor shmem pread setup It is possible for an object to not be a shmem backed GEM object (for example userptr objects). An example of how we hit this failure can be found through copy_batch() in the command parser because we allocate a userptr object for the batch which contains privileged instructions. Userptr calls drm_gem_private_object_init() which explicitly sets the filp to none. It is equally feasible to simply remove the check altogether. You'll probably oops with get_pages somewhere, but that's okay IMO because this condition should be a driver bug, and not trigger-able by userspace. On this note, the function name could probably benefit from a change, but whatever. NOTE: I manually retyped this from a test machine. So I haven't even compiled this exact patch. Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Kristian Høgsberg <krh@bitplanet.net> Cc: Jordan Justen <jordan.l.justen@intel.com> Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> --- drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 66b1705..a198928 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, *needs_clflush = 0; - if (!obj->base.filp) + if (!obj->ops->get_pages) return -EINVAL; if (!(obj->base.read_domains & I915_GEM_DOMAIN_CPU)) { -- 2.7.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 14+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Check for get_pages instead of shmem (filp) 2016-02-06 1:48 [PATCH] drm/i915: Check for get_pages instead of shmem (filp) Ben Widawsky @ 2016-02-08 12:58 ` Patchwork 2016-02-08 23:02 ` [PATCH] " Jordan Justen ` (3 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2016-02-08 12:58 UTC (permalink / raw) To: Ben Widawsky; +Cc: intel-gfx == Summary == Series 3145v1 drm/i915: Check for get_pages instead of shmem (filp) http://patchwork.freedesktop.org/api/1.0/series/3145/revisions/1/mbox/ bdw-nuci7 total:161 pass:152 dwarn:0 dfail:0 fail:0 skip:9 bdw-ultra total:164 pass:152 dwarn:0 dfail:0 fail:0 skip:12 bsw-nuc-2 total:164 pass:136 dwarn:0 dfail:0 fail:0 skip:28 byt-nuc total:164 pass:141 dwarn:0 dfail:0 fail:0 skip:23 hsw-brixbox total:164 pass:151 dwarn:0 dfail:0 fail:0 skip:13 hsw-gt2 total:164 pass:154 dwarn:0 dfail:0 fail:0 skip:10 ilk-hp8440p total:164 pass:116 dwarn:0 dfail:0 fail:0 skip:48 ivb-t430s total:164 pass:150 dwarn:0 dfail:0 fail:0 skip:14 skl-i5k-2 total:164 pass:149 dwarn:1 dfail:0 fail:0 skip:14 snb-dellxps total:164 pass:142 dwarn:0 dfail:0 fail:0 skip:22 Results at /archive/results/CI_IGT_test/Patchwork_1377/ 9ae71c139227311e70dcc91d16d5acba34ce9a71 drm-intel-nightly: 2016y-02m-08d-09h-39m-29s UTC integration manifest 48a3f49aa2256f9e1a071ff4a52c5c226cf01ee2 drm/i915: Check for get_pages instead of shmem (filp) _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-06 1:48 [PATCH] drm/i915: Check for get_pages instead of shmem (filp) Ben Widawsky 2016-02-08 12:58 ` ✓ Fi.CI.BAT: success for " Patchwork @ 2016-02-08 23:02 ` Jordan Justen 2016-02-09 0:20 ` Kristian Høgsberg ` (2 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Jordan Justen @ 2016-02-08 23:02 UTC (permalink / raw) To: Intel GFX; +Cc: Ben Widawsky Applied to a 4.4.1 tree: Tested-by: Jordan Justen <jordan.l.justen@intel.com> And, FWIW: Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> On 2016-02-05 17:48:37, Ben Widawsky wrote: > This behavior of checking for a shmem backed GEM object was introduced here: > commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > Author: Brad Volkin <bradley.d.volkin@intel.com> > Date: Tue Feb 18 10:15:45 2014 -0800 > > drm/i915: Refactor shmem pread setup > > It is possible for an object to not be a shmem backed GEM object (for example > userptr objects). An example of how we hit this failure can be found through > copy_batch() in the command parser because we allocate a userptr object for the > batch which contains privileged instructions. Userptr calls > drm_gem_private_object_init() which explicitly sets the filp to none. > > It is equally feasible to simply remove the check altogether. You'll probably > oops with get_pages somewhere, but that's okay IMO because this condition > should be a driver bug, and not trigger-able by userspace. On this note, the > function name could probably benefit from a change, but whatever. > > NOTE: I manually retyped this from a test machine. So I haven't even compiled > this exact patch. > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Kristian Høgsberg <krh@bitplanet.net> > Cc: Jordan Justen <jordan.l.justen@intel.com> > Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > --- > drivers/gpu/drm/i915/i915_gem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 66b1705..a198928 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > > *needs_clflush = 0; > > - if (!obj->base.filp) > + if (!obj->ops->get_pages) > return -EINVAL; > > if (!(obj->base.read_domains & I915_GEM_DOMAIN_CPU)) { > -- > 2.7.0 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-06 1:48 [PATCH] drm/i915: Check for get_pages instead of shmem (filp) Ben Widawsky 2016-02-08 12:58 ` ✓ Fi.CI.BAT: success for " Patchwork 2016-02-08 23:02 ` [PATCH] " Jordan Justen @ 2016-02-09 0:20 ` Kristian Høgsberg 2016-02-09 11:30 ` Dave Gordon 2016-02-09 19:44 ` [PATCH] [v2] " Ben Widawsky 2016-02-10 7:14 ` ✗ Fi.CI.BAT: warning for drm/i915: Check for get_pages instead of shmem (filp) (rev2) Patchwork 4 siblings, 1 reply; 14+ messages in thread From: Kristian Høgsberg @ 2016-02-09 0:20 UTC (permalink / raw) To: Ben Widawsky; +Cc: Intel GFX On Fri, Feb 5, 2016 at 5:48 PM, Ben Widawsky <benjamin.widawsky@intel.com> wrote: > This behavior of checking for a shmem backed GEM object was introduced here: > commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > Author: Brad Volkin <bradley.d.volkin@intel.com> > Date: Tue Feb 18 10:15:45 2014 -0800 > > drm/i915: Refactor shmem pread setup > > It is possible for an object to not be a shmem backed GEM object (for example > userptr objects). An example of how we hit this failure can be found through > copy_batch() in the command parser because we allocate a userptr object for the > batch which contains privileged instructions. Userptr calls > drm_gem_private_object_init() which explicitly sets the filp to none. > > It is equally feasible to simply remove the check altogether. You'll probably > oops with get_pages somewhere, but that's okay IMO because this condition > should be a driver bug, and not trigger-able by userspace. On this note, the > function name could probably benefit from a change, but whatever. > > NOTE: I manually retyped this from a test machine. So I haven't even compiled > this exact patch. > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Kristian Høgsberg <krh@bitplanet.net> > Cc: Jordan Justen <jordan.l.justen@intel.com> > Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > --- > drivers/gpu/drm/i915/i915_gem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 66b1705..a198928 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > > *needs_clflush = 0; > > - if (!obj->base.filp) > + if (!obj->ops->get_pages) Do we want to do what Chris did in a2a4f916c2f344d4e596c875dd1e66764afec8b8 (on drm-intel-fixes): + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) ? > return -EINVAL; > > if (!(obj->base.read_domains & I915_GEM_DOMAIN_CPU)) { > -- > 2.7.0 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-09 0:20 ` Kristian Høgsberg @ 2016-02-09 11:30 ` Dave Gordon 2016-02-09 17:37 ` Ben Widawsky 0 siblings, 1 reply; 14+ messages in thread From: Dave Gordon @ 2016-02-09 11:30 UTC (permalink / raw) To: Kristian Høgsberg, Ben Widawsky, Chris Wilson Cc: Intel Graphics Development On 09/02/16 00:20, Kristian Høgsberg wrote: > On Fri, Feb 5, 2016 at 5:48 PM, Ben Widawsky > <benjamin.widawsky@intel.com> wrote: >> This behavior of checking for a shmem backed GEM object was introduced here: >> commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab >> Author: Brad Volkin <bradley.d.volkin@intel.com> >> Date: Tue Feb 18 10:15:45 2014 -0800 >> >> drm/i915: Refactor shmem pread setup >> >> It is possible for an object to not be a shmem backed GEM object (for example >> userptr objects). An example of how we hit this failure can be found through >> copy_batch() in the command parser because we allocate a userptr object for the >> batch which contains privileged instructions. Userptr calls >> drm_gem_private_object_init() which explicitly sets the filp to none. >> >> It is equally feasible to simply remove the check altogether. You'll probably >> oops with get_pages somewhere, but that's okay IMO because this condition >> should be a driver bug, and not trigger-able by userspace. On this note, the >> function name could probably benefit from a change, but whatever. >> >> NOTE: I manually retyped this from a test machine. So I haven't even compiled >> this exact patch. >> >> Cc: Chris Wilson <chris@chris-wilson.co.uk> >> Cc: Kristian Høgsberg <krh@bitplanet.net> >> Cc: Jordan Justen <jordan.l.justen@intel.com> >> Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> >> --- >> drivers/gpu/drm/i915/i915_gem.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c >> index 66b1705..a198928 100644 >> --- a/drivers/gpu/drm/i915/i915_gem.c >> +++ b/drivers/gpu/drm/i915/i915_gem.c >> @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, >> >> *needs_clflush = 0; >> >> - if (!obj->base.filp) >> + if (!obj->ops->get_pages) Don't all subclasses have a get_pages() function? > Do we want to do what Chris did in > a2a4f916c2f344d4e596c875dd1e66764afec8b8 (on drm-intel-fixes): > > + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) > > ? Yes, I think so; i915_gem_shmem_pread() is going to walk the sglist, so the object had better have a page array for it to iterate over. .Dave. _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-09 11:30 ` Dave Gordon @ 2016-02-09 17:37 ` Ben Widawsky 0 siblings, 0 replies; 14+ messages in thread From: Ben Widawsky @ 2016-02-09 17:37 UTC (permalink / raw) To: Dave Gordon; +Cc: Intel Graphics Development On Tue, Feb 09, 2016 at 11:30:34AM +0000, Dave Gordon wrote: > On 09/02/16 00:20, Kristian Høgsberg wrote: > >On Fri, Feb 5, 2016 at 5:48 PM, Ben Widawsky > ><benjamin.widawsky@intel.com> wrote: > >>This behavior of checking for a shmem backed GEM object was introduced here: > >>commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > >>Author: Brad Volkin <bradley.d.volkin@intel.com> > >>Date: Tue Feb 18 10:15:45 2014 -0800 > >> > >> drm/i915: Refactor shmem pread setup > >> > >>It is possible for an object to not be a shmem backed GEM object (for example > >>userptr objects). An example of how we hit this failure can be found through > >>copy_batch() in the command parser because we allocate a userptr object for the > >>batch which contains privileged instructions. Userptr calls > >>drm_gem_private_object_init() which explicitly sets the filp to none. > >> > >>It is equally feasible to simply remove the check altogether. You'll probably > >>oops with get_pages somewhere, but that's okay IMO because this condition > >>should be a driver bug, and not trigger-able by userspace. On this note, the > >>function name could probably benefit from a change, but whatever. > >> > >>NOTE: I manually retyped this from a test machine. So I haven't even compiled > >>this exact patch. > >> > >>Cc: Chris Wilson <chris@chris-wilson.co.uk> > >>Cc: Kristian Høgsberg <krh@bitplanet.net> > >>Cc: Jordan Justen <jordan.l.justen@intel.com> > >>Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > >>--- > >> drivers/gpu/drm/i915/i915_gem.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >>diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > >>index 66b1705..a198928 100644 > >>--- a/drivers/gpu/drm/i915/i915_gem.c > >>+++ b/drivers/gpu/drm/i915/i915_gem.c > >>@@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > >> > >> *needs_clflush = 0; > >> > >>- if (!obj->base.filp) > >>+ if (!obj->ops->get_pages) > > Don't all subclasses have a get_pages() function? Yeah, as I said in the commit message, I didn't think this was particularly appealing, but I figured people would say something if I removed everything. I wasn't aware of Chris' patch. > > >Do we want to do what Chris did in > >a2a4f916c2f344d4e596c875dd1e66764afec8b8 (on drm-intel-fixes): > > > >+ if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) > > > >? > > Yes, I think so; i915_gem_shmem_pread() is going to walk the sglist, so the > object had better have a page array for it to iterate over. > > .Dave. > Okay. I'll send v2. Thanks. -- Ben Widawsky, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] [v2] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-06 1:48 [PATCH] drm/i915: Check for get_pages instead of shmem (filp) Ben Widawsky ` (2 preceding siblings ...) 2016-02-09 0:20 ` Kristian Høgsberg @ 2016-02-09 19:44 ` Ben Widawsky 2016-02-10 15:42 ` Ben Widawsky 2016-02-10 7:14 ` ✗ Fi.CI.BAT: warning for drm/i915: Check for get_pages instead of shmem (filp) (rev2) Patchwork 4 siblings, 1 reply; 14+ messages in thread From: Ben Widawsky @ 2016-02-09 19:44 UTC (permalink / raw) To: Intel GFX; +Cc: Ben Widawsky This behavior of checking for a shmem backed GEM object was introduced here: commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab Author: Brad Volkin <bradley.d.volkin@intel.com> Date: Tue Feb 18 10:15:45 2014 -0800 drm/i915: Refactor shmem pread setup It is possible for an object to not be a shmem backed GEM object (for example userptr objects). An example of how we hit this failure can be found through copy_batch() in the command parser because we allocate a userptr object for the batch which contains privileged instructions. Userptr calls drm_gem_private_object_init() which explicitly sets the filp to none. NOTE: I manually retyped this from a test machine. So I haven't even compiled this exact patch. v2: Use same logic as from a2a4f916c2f (Kristian, Dave Gordon) Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Kristian Høgsberg <krh@bitplanet.net> Cc: Dave Gordon <david.s.gordon@intel.com> Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> Tested-by: Jordan Justen <jordan.l.justen@intel.com> (v1) Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (v1) --- drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index e9b19bc..7fd79b0 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, *needs_clflush = 0; - if (!obj->base.filp) + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) return -EINVAL; if (!(obj->base.read_domains & I915_GEM_DOMAIN_CPU)) { -- 2.7.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] [v2] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-09 19:44 ` [PATCH] [v2] " Ben Widawsky @ 2016-02-10 15:42 ` Ben Widawsky 2016-02-10 16:23 ` Chris Wilson 0 siblings, 1 reply; 14+ messages in thread From: Ben Widawsky @ 2016-02-10 15:42 UTC (permalink / raw) To: Intel GFX Do you guys get the CI mails? This version has regressions. v1 did not. I don't know what to trust. On Tue, Feb 09, 2016 at 11:44:12AM -0800, Ben Widawsky wrote: > This behavior of checking for a shmem backed GEM object was introduced here: > commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > Author: Brad Volkin <bradley.d.volkin@intel.com> > Date: Tue Feb 18 10:15:45 2014 -0800 > > drm/i915: Refactor shmem pread setup > > It is possible for an object to not be a shmem backed GEM object (for example > userptr objects). An example of how we hit this failure can be found through > copy_batch() in the command parser because we allocate a userptr object for the > batch which contains privileged instructions. Userptr calls > drm_gem_private_object_init() which explicitly sets the filp to none. > > NOTE: I manually retyped this from a test machine. So I haven't even compiled > this exact patch. > > v2: Use same logic as from a2a4f916c2f (Kristian, Dave Gordon) > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Kristian Høgsberg <krh@bitplanet.net> > Cc: Dave Gordon <david.s.gordon@intel.com> > Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > Tested-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > --- > drivers/gpu/drm/i915/i915_gem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index e9b19bc..7fd79b0 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > > *needs_clflush = 0; > > - if (!obj->base.filp) > + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) > return -EINVAL; > > if (!(obj->base.read_domains & I915_GEM_DOMAIN_CPU)) { > -- > 2.7.0 > -- Ben Widawsky, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] [v2] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-10 15:42 ` Ben Widawsky @ 2016-02-10 16:23 ` Chris Wilson 2016-02-10 17:39 ` Ben Widawsky 0 siblings, 1 reply; 14+ messages in thread From: Chris Wilson @ 2016-02-10 16:23 UTC (permalink / raw) To: Ben Widawsky; +Cc: Intel GFX On Wed, Feb 10, 2016 at 07:42:23AM -0800, Ben Widawsky wrote: > Do you guys get the CI mails? This version has regressions. v1 did not. I don't > know what to trust. I didn't even see v2 itself! > On Tue, Feb 09, 2016 at 11:44:12AM -0800, Ben Widawsky wrote: > > This behavior of checking for a shmem backed GEM object was introduced here: > > commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > > Author: Brad Volkin <bradley.d.volkin@intel.com> > > Date: Tue Feb 18 10:15:45 2014 -0800 > > > > drm/i915: Refactor shmem pread setup > > > > It is possible for an object to not be a shmem backed GEM object (for example > > userptr objects). An example of how we hit this failure can be found through > > copy_batch() in the command parser because we allocate a userptr object for the > > batch which contains privileged instructions. Userptr calls > > drm_gem_private_object_init() which explicitly sets the filp to none. > > > > NOTE: I manually retyped this from a test machine. So I haven't even compiled > > this exact patch. > > > > v2: Use same logic as from a2a4f916c2f (Kristian, Dave Gordon) > > > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: Kristian Høgsberg <krh@bitplanet.net> > > Cc: Dave Gordon <david.s.gordon@intel.com> > > Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > > Tested-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > > Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > > --- > > drivers/gpu/drm/i915/i915_gem.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > > index e9b19bc..7fd79b0 100644 > > --- a/drivers/gpu/drm/i915/i915_gem.c > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > > > > *needs_clflush = 0; > > > > - if (!obj->base.filp) > > + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) Don't use WARN_ON, there is code (or will be) where we use prepare_shmem_read/write to determine if we can use the shmem paths. Also i915_gem_obj_prepare_shmem_write() requires the same treatment. My apologies I had this patch but appear to have accidentally squashed it whilst rebasing. Thanks! -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] [v2] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-10 16:23 ` Chris Wilson @ 2016-02-10 17:39 ` Ben Widawsky 2016-02-15 17:26 ` Daniel Vetter 2016-02-15 17:56 ` Dave Gordon 0 siblings, 2 replies; 14+ messages in thread From: Ben Widawsky @ 2016-02-10 17:39 UTC (permalink / raw) To: Chris Wilson, Intel GFX, Kristian Høgsberg, Dave Gordon, Jordan Justen On Wed, Feb 10, 2016 at 04:23:08PM +0000, Chris Wilson wrote: > On Wed, Feb 10, 2016 at 07:42:23AM -0800, Ben Widawsky wrote: > > Do you guys get the CI mails? This version has regressions. v1 did not. I don't > > know what to trust. > > I didn't even see v2 itself! > > > On Tue, Feb 09, 2016 at 11:44:12AM -0800, Ben Widawsky wrote: > > > This behavior of checking for a shmem backed GEM object was introduced here: > > > commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > > > Author: Brad Volkin <bradley.d.volkin@intel.com> > > > Date: Tue Feb 18 10:15:45 2014 -0800 > > > > > > drm/i915: Refactor shmem pread setup > > > > > > It is possible for an object to not be a shmem backed GEM object (for example > > > userptr objects). An example of how we hit this failure can be found through > > > copy_batch() in the command parser because we allocate a userptr object for the > > > batch which contains privileged instructions. Userptr calls > > > drm_gem_private_object_init() which explicitly sets the filp to none. > > > > > > NOTE: I manually retyped this from a test machine. So I haven't even compiled > > > this exact patch. > > > > > > v2: Use same logic as from a2a4f916c2f (Kristian, Dave Gordon) > > > > > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > > > Cc: Kristian Høgsberg <krh@bitplanet.net> > > > Cc: Dave Gordon <david.s.gordon@intel.com> > > > Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > > > Tested-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > > > Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > > > > --- > > > drivers/gpu/drm/i915/i915_gem.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > > > index e9b19bc..7fd79b0 100644 > > > --- a/drivers/gpu/drm/i915/i915_gem.c > > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > > @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > > > > > > *needs_clflush = 0; > > > > > > - if (!obj->base.filp) > > > + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) > > Don't use WARN_ON, there is code (or will be) where we use > prepare_shmem_read/write to determine if we can use the shmem paths. > > Also i915_gem_obj_prepare_shmem_write() requires the same treatment. > > My apologies I had this patch but appear to have accidentally squashed > it whilst rebasing. Thanks! > -Chris > So... is someone going to land this fix? We need it. -- Ben Widawsky, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] [v2] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-10 17:39 ` Ben Widawsky @ 2016-02-15 17:26 ` Daniel Vetter 2016-02-15 17:56 ` Dave Gordon 1 sibling, 0 replies; 14+ messages in thread From: Daniel Vetter @ 2016-02-15 17:26 UTC (permalink / raw) To: Ben Widawsky; +Cc: Intel GFX On Wed, Feb 10, 2016 at 09:39:33AM -0800, Ben Widawsky wrote: > On Wed, Feb 10, 2016 at 04:23:08PM +0000, Chris Wilson wrote: > > On Wed, Feb 10, 2016 at 07:42:23AM -0800, Ben Widawsky wrote: > > > Do you guys get the CI mails? This version has regressions. v1 did not. I don't > > > know what to trust. > > > > I didn't even see v2 itself! > > > > > On Tue, Feb 09, 2016 at 11:44:12AM -0800, Ben Widawsky wrote: > > > > This behavior of checking for a shmem backed GEM object was introduced here: > > > > commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > > > > Author: Brad Volkin <bradley.d.volkin@intel.com> > > > > Date: Tue Feb 18 10:15:45 2014 -0800 > > > > > > > > drm/i915: Refactor shmem pread setup > > > > > > > > It is possible for an object to not be a shmem backed GEM object (for example > > > > userptr objects). An example of how we hit this failure can be found through > > > > copy_batch() in the command parser because we allocate a userptr object for the > > > > batch which contains privileged instructions. Userptr calls > > > > drm_gem_private_object_init() which explicitly sets the filp to none. > > > > > > > > NOTE: I manually retyped this from a test machine. So I haven't even compiled > > > > this exact patch. > > > > > > > > v2: Use same logic as from a2a4f916c2f (Kristian, Dave Gordon) > > > > > > > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > > > > Cc: Kristian Høgsberg <krh@bitplanet.net> > > > > Cc: Dave Gordon <david.s.gordon@intel.com> > > > > Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> > > > > Tested-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > > > > Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (v1) > > > > > > --- > > > > drivers/gpu/drm/i915/i915_gem.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > > > > index e9b19bc..7fd79b0 100644 > > > > --- a/drivers/gpu/drm/i915/i915_gem.c > > > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > > > @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, > > > > > > > > *needs_clflush = 0; > > > > > > > > - if (!obj->base.filp) > > > > + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) > > > > Don't use WARN_ON, there is code (or will be) where we use > > prepare_shmem_read/write to determine if we can use the shmem paths. > > > > Also i915_gem_obj_prepare_shmem_write() requires the same treatment. > > > > My apologies I had this patch but appear to have accidentally squashed > > it whilst rebasing. Thanks! > > -Chris > > > > So... is someone going to land this fix? We need it. Queued for -next, thanks for the patch. Aside: We have about 15 committers by now, Chris being one of them. No need to hang in there waiting for lazy me to undig myself from the latest CI fire. -Daniel > > -- > Ben Widawsky, Intel Open Source Technology Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] [v2] drm/i915: Check for get_pages instead of shmem (filp) 2016-02-10 17:39 ` Ben Widawsky 2016-02-15 17:26 ` Daniel Vetter @ 2016-02-15 17:56 ` Dave Gordon 1 sibling, 0 replies; 14+ messages in thread From: Dave Gordon @ 2016-02-15 17:56 UTC (permalink / raw) To: Ben Widawsky, Chris Wilson, Intel GFX, Kristian Høgsberg, Jordan Justen On 10/02/16 17:39, Ben Widawsky wrote: > On Wed, Feb 10, 2016 at 04:23:08PM +0000, Chris Wilson wrote: >> On Wed, Feb 10, 2016 at 07:42:23AM -0800, Ben Widawsky wrote: >>> Do you guys get the CI mails? This version has regressions. v1 did not. I don't >>> know what to trust. >> >> I didn't even see v2 itself! >> >>> On Tue, Feb 09, 2016 at 11:44:12AM -0800, Ben Widawsky wrote: >>>> This behavior of checking for a shmem backed GEM object was introduced here: >>>> commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab >>>> Author: Brad Volkin <bradley.d.volkin@intel.com> >>>> Date: Tue Feb 18 10:15:45 2014 -0800 >>>> >>>> drm/i915: Refactor shmem pread setup >>>> >>>> It is possible for an object to not be a shmem backed GEM object (for example >>>> userptr objects). An example of how we hit this failure can be found through >>>> copy_batch() in the command parser because we allocate a userptr object for the >>>> batch which contains privileged instructions. Userptr calls >>>> drm_gem_private_object_init() which explicitly sets the filp to none. >>>> >>>> NOTE: I manually retyped this from a test machine. So I haven't even compiled >>>> this exact patch. >>>> >>>> v2: Use same logic as from a2a4f916c2f (Kristian, Dave Gordon) >>>> >>>> Cc: Chris Wilson <chris@chris-wilson.co.uk> >>>> Cc: Kristian Høgsberg <krh@bitplanet.net> >>>> Cc: Dave Gordon <david.s.gordon@intel.com> >>>> Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> >>>> Tested-by: Jordan Justen <jordan.l.justen@intel.com> (v1) >>>> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (v1) >> >>>> --- >>>> drivers/gpu/drm/i915/i915_gem.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c >>>> index e9b19bc..7fd79b0 100644 >>>> --- a/drivers/gpu/drm/i915/i915_gem.c >>>> +++ b/drivers/gpu/drm/i915/i915_gem.c >>>> @@ -489,7 +489,7 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, >>>> >>>> *needs_clflush = 0; >>>> >>>> - if (!obj->base.filp) >>>> + if (WARN_ON((obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE) == 0)) It looks like the above code can't be reached? 'filp' is tested in i915_gem_pread_ioctl(), before i915_gem_obj_prepare_shmem_read() is called! >> Don't use WARN_ON, there is code (or will be) where we use >> prepare_shmem_read/write to determine if we can use the shmem paths. >> >> Also i915_gem_obj_prepare_shmem_write() requires the same treatment. No such function, but there's a 'filp' test in i915_gem_pwrite_ioctl(). Also, what about i915_gem_mmap_ioctl() ? Is mmap() also going to be legitimate without a file pointer? > > My apologies I had this patch but appear to have accidentally squashed >> it whilst rebasing. Thanks! >> -Chris > > So... is someone going to land this fix? We need it. Looks like Chris wants this to read if (!(obj->ops->flags & I915_GEM_OBJECT_HAS_STRUCT_PAGE)) return -EINVAL; leaving it to the caller to decide whether to log a complaint. I'm happy with that. .Dave. _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✗ Fi.CI.BAT: warning for drm/i915: Check for get_pages instead of shmem (filp) (rev2) 2016-02-06 1:48 [PATCH] drm/i915: Check for get_pages instead of shmem (filp) Ben Widawsky ` (3 preceding siblings ...) 2016-02-09 19:44 ` [PATCH] [v2] " Ben Widawsky @ 2016-02-10 7:14 ` Patchwork 2016-02-15 17:25 ` Daniel Vetter 4 siblings, 1 reply; 14+ messages in thread From: Patchwork @ 2016-02-10 7:14 UTC (permalink / raw) To: Ben Widawsky; +Cc: intel-gfx == Summary == Series 3145v2 drm/i915: Check for get_pages instead of shmem (filp) http://patchwork.freedesktop.org/api/1.0/series/3145/revisions/2/mbox/ Test pm_rpm: Subgroup basic-pci-d3-state: fail -> PASS (hsw-gt2) pass -> DMESG-WARN (byt-nuc) Subgroup basic-rte: dmesg-warn -> PASS (bsw-nuc-2) dmesg-warn -> PASS (byt-nuc) UNSTABLE bdw-nuci7 total:161 pass:152 dwarn:0 dfail:0 fail:0 skip:9 bdw-ultra total:164 pass:152 dwarn:0 dfail:0 fail:0 skip:12 bsw-nuc-2 total:164 pass:136 dwarn:0 dfail:0 fail:0 skip:28 byt-nuc total:164 pass:140 dwarn:1 dfail:0 fail:0 skip:23 hsw-brixbox total:164 pass:151 dwarn:0 dfail:0 fail:0 skip:13 hsw-gt2 total:164 pass:154 dwarn:0 dfail:0 fail:0 skip:10 ilk-hp8440p total:164 pass:116 dwarn:0 dfail:0 fail:0 skip:48 ivb-t430s total:164 pass:150 dwarn:0 dfail:0 fail:0 skip:14 snb-dellxps total:164 pass:142 dwarn:0 dfail:0 fail:0 skip:22 snb-x220t total:164 pass:142 dwarn:0 dfail:0 fail:1 skip:21 Results at /archive/results/CI_IGT_test/Patchwork_1385/ d9bd337b4b2d46f73005fcdf0e7049e7f8ed5c04 drm-intel-nightly: 2016y-02m-09d-15h-42m-46s UTC integration manifest cb1f5a551af8b6b2f3f75a322a70df5891eee393 drm/i915: Check for get_pages instead of shmem (filp) _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: ✗ Fi.CI.BAT: warning for drm/i915: Check for get_pages instead of shmem (filp) (rev2) 2016-02-10 7:14 ` ✗ Fi.CI.BAT: warning for drm/i915: Check for get_pages instead of shmem (filp) (rev2) Patchwork @ 2016-02-15 17:25 ` Daniel Vetter 0 siblings, 0 replies; 14+ messages in thread From: Daniel Vetter @ 2016-02-15 17:25 UTC (permalink / raw) To: intel-gfx; +Cc: Ben Widawsky On Wed, Feb 10, 2016 at 07:14:36AM -0000, Patchwork wrote: > == Summary == > > Series 3145v2 drm/i915: Check for get_pages instead of shmem (filp) > http://patchwork.freedesktop.org/api/1.0/series/3145/revisions/2/mbox/ > > Test pm_rpm: > Subgroup basic-pci-d3-state: > fail -> PASS (hsw-gt2) > pass -> DMESG-WARN (byt-nuc) Known fail: https://bugs.freedesktop.org/show_bug.cgi?id=93121 I really should simply merge the patch to shut this all up. -Daniel > Subgroup basic-rte: > dmesg-warn -> PASS (bsw-nuc-2) > dmesg-warn -> PASS (byt-nuc) UNSTABLE > > bdw-nuci7 total:161 pass:152 dwarn:0 dfail:0 fail:0 skip:9 > bdw-ultra total:164 pass:152 dwarn:0 dfail:0 fail:0 skip:12 > bsw-nuc-2 total:164 pass:136 dwarn:0 dfail:0 fail:0 skip:28 > byt-nuc total:164 pass:140 dwarn:1 dfail:0 fail:0 skip:23 > hsw-brixbox total:164 pass:151 dwarn:0 dfail:0 fail:0 skip:13 > hsw-gt2 total:164 pass:154 dwarn:0 dfail:0 fail:0 skip:10 > ilk-hp8440p total:164 pass:116 dwarn:0 dfail:0 fail:0 skip:48 > ivb-t430s total:164 pass:150 dwarn:0 dfail:0 fail:0 skip:14 > snb-dellxps total:164 pass:142 dwarn:0 dfail:0 fail:0 skip:22 > snb-x220t total:164 pass:142 dwarn:0 dfail:0 fail:1 skip:21 > > Results at /archive/results/CI_IGT_test/Patchwork_1385/ > > d9bd337b4b2d46f73005fcdf0e7049e7f8ed5c04 drm-intel-nightly: 2016y-02m-09d-15h-42m-46s UTC integration manifest > cb1f5a551af8b6b2f3f75a322a70df5891eee393 drm/i915: Check for get_pages instead of shmem (filp) > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-02-15 17:56 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-02-06 1:48 [PATCH] drm/i915: Check for get_pages instead of shmem (filp) Ben Widawsky 2016-02-08 12:58 ` ✓ Fi.CI.BAT: success for " Patchwork 2016-02-08 23:02 ` [PATCH] " Jordan Justen 2016-02-09 0:20 ` Kristian Høgsberg 2016-02-09 11:30 ` Dave Gordon 2016-02-09 17:37 ` Ben Widawsky 2016-02-09 19:44 ` [PATCH] [v2] " Ben Widawsky 2016-02-10 15:42 ` Ben Widawsky 2016-02-10 16:23 ` Chris Wilson 2016-02-10 17:39 ` Ben Widawsky 2016-02-15 17:26 ` Daniel Vetter 2016-02-15 17:56 ` Dave Gordon 2016-02-10 7:14 ` ✗ Fi.CI.BAT: warning for drm/i915: Check for get_pages instead of shmem (filp) (rev2) Patchwork 2016-02-15 17:25 ` Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).