From: "Thomas Hellström" <thomas@shipmail.org>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Eric Anholt <eric@anholt.net>,
DRI <dri-devel@lists.sourceforge.net>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: Gem GTT mmaps..
Date: Fri, 06 Feb 2009 23:39:55 +0100 [thread overview]
Message-ID: <498CBC3B.6010609@shipmail.org> (raw)
In-Reply-To: <200902061424.02906.jbarnes@virtuousgeek.org>
Jesse Barnes wrote:
> On Friday, February 6, 2009 1:35 pm Thomas Hellström wrote:
>
>> Jesse Barnes wrote:
>>
>>> On Thursday, February 5, 2009 10:37 am Jesse Barnes wrote:
>>>
>>>> So if we leave the lookup reference around from the GTT mapping ioctl,
>>>> that would take care of new mappings. And if we added/removed
>>>> references at VM open/close time, we should be covered for fork. But is
>>>> it ok to add a new unref in the finish ioctl for GTT mapped objects? I
>>>> don't think so, because we don't know for sure if the caller was the one
>>>> that created the new fake offset (which would be one way of detecting
>>>> whether it was GTT mapped). Seems like we need a new unmap ioctl? Or we
>>>> could put the mapping ref/unref in libdrm, where it would be tracked on
>>>> a per-process basis...
>>>>
>>> Ah but maybe we should just tear down the fake offset at unmap time; then
>>> we'd be able to use it as an existence test for the mapping and get the
>>> refcounting right. The last thing I thought of was whether we'd be ok in
>>> a map_gtt -> crash case. I *think* the vm_close code will deal with
>>> that, if we do a deref there?
>>>
>> Yes, an mmap() is always paired with a vm_close(), and the vm_close()
>> also happens in a crash situation.
>>
>
> This one should cover the cases you found.
> - ref at map time will keep the object around so fault shouldn't fail
> - additional threads will take their refs in vm_open/close
> - unmap will unref and remove mmap_offset allowing object to be freed
>
>
Jesse,
Yes, it looks OK to me.
A short question, though, when is i915_gem_sw_finish_ioctl called? Is it
possible that the client may still think its mmap offset is valid?
Thomas
next prev parent reply other threads:[~2009-02-06 22:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-04 22:32 Gem GTT mmaps Thomas Hellström
2009-02-04 23:02 ` Jesse Barnes
2009-02-04 23:42 ` Eric Anholt
2009-02-05 18:37 ` Jesse Barnes
2009-02-06 17:14 ` Jesse Barnes
2009-02-06 21:35 ` Thomas Hellström
2009-02-06 22:24 ` Jesse Barnes
2009-02-06 22:39 ` Thomas Hellström [this message]
2009-02-06 23:22 ` Jesse Barnes
2009-02-07 0:52 ` Chris Wilson
2009-02-11 22:01 ` Jesse Barnes
2009-02-07 8:06 ` Xavier Bestel
2009-02-10 22:00 ` Eric Anholt
2009-02-10 22:58 ` Jesse Barnes
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=498CBC3B.6010609@shipmail.org \
--to=thomas@shipmail.org \
--cc=dri-devel@lists.sourceforge.net \
--cc=eric@anholt.net \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-kernel@vger.kernel.org \
/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.