All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Gordon <david.s.gordon@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
	ankitprasad.r.sharma@intel.com, intel-gfx@lists.freedesktop.org,
	akash.goel@intel.com, shashidhar.hiremath@intel.com
Subject: Re: [PATCH 9/9] drm/i915: Fail the execbuff using stolen objects as batchbuffers
Date: Tue, 15 Dec 2015 17:50:36 +0000	[thread overview]
Message-ID: <567052EC.2010209@intel.com> (raw)
In-Reply-To: <20151215145401.GH24300@nuc-i3427.alporthouse.com>

On 15/12/15 14:54, Chris Wilson wrote:
> On Tue, Dec 15, 2015 at 02:41:47PM +0000, Dave Gordon wrote:
>> On 14/12/15 05:46, ankitprasad.r.sharma@intel.com wrote:
>>> From: Ankitprasad Sharma <ankitprasad.r.sharma@intel.com>
>>>
>>> Using stolen backed objects as a batchbuffer may result into a kernel
>>> panic during relocation. Added a check to prevent the panic and fail
>>> the execbuffer call. It is not recommended to use stolen object as
>>> a batchbuffer.
>>>
>>> Signed-off-by: Ankitprasad Sharma <ankitprasad.r.sharma@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 +++-
>>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
>>> index 48ec484..d342f10 100644
>>> --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
>>> +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
>>> @@ -462,7 +462,9 @@ i915_gem_execbuffer_relocate_entry(struct drm_i915_gem_object *obj,
>>>   	if (obj->active && pagefault_disabled())
>>>   		return -EFAULT;
>>>
>>> -	if (use_cpu_reloc(obj))
>>> +	if (obj->stolen)
>>> +		ret = -EINVAL;
>>
>> I'd rather reject ALL "weird" gem objects at the first opportunity,
>> so that none of the execbuffer code has to worry about stolen, phys,
>> dmabuf, etc ...
>>
>> 	if (obj->ops != &i915_gem_object_ops))
>> 		ret = -EINVAL;		/* No exotica please */
>
> No. All GEM objects are supposed to be first-class so that they are
> interchangeable through all aspects of the API (that becomes even more
> important with dma-buf interoperation). We have had to relax that for a
> couple of special categories (basically CPU mmapping) for certain clases
> that are not struct file backed. Though in principle, a gemfs would work
> just fine.
>
> The only restrictions we should ideally impose are those determined by
> hardware.
> -Chris

I don't think it's reasonable to place objects that the kernel driver 
cares about -- i.e. understands and decodes -- in memory areas that it 
does not manage, and which may be subject to arbitrary uncontrolled 
access by external hardware and/or processes.

And I thought we couldn't kmap stolen anyway?

.Dave.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-12-15 17:50 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-14  5:46 [PATCH v11 0/9] Support for creating/using Stolen memory backed objects ankitprasad.r.sharma
2015-12-14  5:46 ` [PATCH 1/9] drm/i915: Allow use of get_dma_address for stolen " ankitprasad.r.sharma
2015-12-17 10:20   ` Tvrtko Ursulin
2015-12-14  5:46 ` [PATCH 2/9] drm/i915: Use insert_page for pwrite_fast ankitprasad.r.sharma
2015-12-14  9:54   ` Chris Wilson
2015-12-14 10:48     ` Chris Wilson
2015-12-14 11:22       ` Chris Wilson
2015-12-17 10:45   ` Tvrtko Ursulin
2015-12-17 11:19     ` Chris Wilson
2015-12-14  5:46 ` [PATCH 3/9] drm/i915: Clearing buffer objects via CPU/GTT ankitprasad.r.sharma
2015-12-14  9:48   ` Chris Wilson
2015-12-17 10:27   ` Tvrtko Ursulin
2015-12-14  5:46 ` [PATCH 4/9] drm/i915: Support for creating Stolen memory backed objects ankitprasad.r.sharma
2015-12-14 10:05   ` Chris Wilson
2015-12-15  6:10     ` Ankitprasad Sharma
2015-12-14  5:46 ` [PATCH 5/9] drm/i915: Propagating correct error codes to the userspace ankitprasad.r.sharma
2015-12-14 10:10   ` Chris Wilson
2015-12-14  5:46 ` [PATCH 6/9] drm/i915: Add support for stealing purgable stolen pages ankitprasad.r.sharma
2015-12-14 10:13   ` Chris Wilson
2015-12-17 10:51   ` Tvrtko Ursulin
2015-12-14  5:46 ` [PATCH 7/9] drm/i915: Support for pread/pwrite from/to non shmem backed objects ankitprasad.r.sharma
2015-12-14  9:43   ` Chris Wilson
2015-12-14  5:46 ` [PATCH 8/9] drm/i915: Migrate stolen objects before hibernation ankitprasad.r.sharma
2015-12-14 10:31   ` Chris Wilson
2015-12-14  5:46 ` [PATCH 9/9] drm/i915: Fail the execbuff using stolen objects as batchbuffers ankitprasad.r.sharma
2015-12-14  9:44   ` Chris Wilson
2015-12-15 14:41   ` Dave Gordon
2015-12-15 14:54     ` Chris Wilson
2015-12-15 17:50       ` Dave Gordon [this message]
2015-12-16 12:35         ` Chris Wilson

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=567052EC.2010209@intel.com \
    --to=david.s.gordon@intel.com \
    --cc=akash.goel@intel.com \
    --cc=ankitprasad.r.sharma@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=shashidhar.hiremath@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.