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 > ><[email protected]> wrote: > >>This behavior of checking for a shmem backed GEM object was introduced here: > >>commit 4c914c0c7c787b8f730128a8cdcca9c50b0784ab > >>Author: Brad Volkin <[email protected]> > >>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 <[email protected]> > >>Cc: Kristian Høgsberg <[email protected]> > >>Cc: Jordan Justen <[email protected]> > >>Signed-off-by: Ben Widawsky <[email protected]> > >>--- > >> 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 [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
