From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
intel-gfx@lists.freedesktop.org,
Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH] drm/i915: Seal busy-ioctl uABI and prevent leaking of internal ids
Date: Fri, 15 Jan 2016 16:24:50 +0000 [thread overview]
Message-ID: <56991D52.6040804@linux.intel.com> (raw)
In-Reply-To: <20160115161907.GB27877@nuc-i3427.alporthouse.com>
On 15/01/16 16:19, Chris Wilson wrote:
> On Fri, Jan 15, 2016 at 04:02:52PM +0000, Tvrtko Ursulin wrote:
>>
>> On 15/01/16 13:57, Chris Wilson wrote:
>>> On Fri, Jan 15, 2016 at 01:22:39PM +0000, Tvrtko Ursulin wrote:
>>>> Looks like your DDX is the only user not using it in the boolean mode?
>>>
>>> As far as I am aware, that is the only user that worries about which
>>> engine the object is currently active on.
>>>
>>>> And libdrm is a bit confused in its return statements:
>>>>
>>>> ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
>>>> if (ret == 0) {
>>>> bo_gem->idle = !busy.busy;
>>>> return busy.busy;
>>>> } else {
>>>> return false;
>>>> }
>>>> return (ret == 0 && busy.busy);
>>>>
>>>> Looks like it was a boolean as well until commit
>>>> 02f93c21e6e1c3dad9d99349989daa84a8c0b5fb quite possibly by accident
>>>> started exposing the bits.
>>>
>>> Hmm, libdrm bo_is_busy() was always meant to be boolean and that patch
>>> postdates when we started storing read/write bits in the return value.
>>> So definitely an unintentional leakage.
>>
>> In that case I think just respin with comment corrections in uapi
>> header for drm_i915_gem_busy?
>
> /** Return busy status
> *
> * A return of 0 implies that the object is idle (after
> * having flushed any pending activity), and a non-zero return that
> * the object is still in-flight on the GPU. (The GPU has not yet
> * signaled completion for all pending requests that reference the
> * object.)
> *
> * The returned dword is split into two fields to indicate both
> * the engines on which the object is being read, and the
> * engine on which is currently being writtern to (if any).
> *
> * The low word (bits 0:15) indicate if the object is being written
> * to by any engine (there can only be one, as the GEM implicit
> * synchronisation rules force writes to be serialised.) Only the
> * engine for last write is reported.
> *
> * The high word (bits 16:31) are a bitmask of which engines are
> * currently reading from the object.
> *
> * The value of each engine is the same as specified in the
> * EXECBUFFER2 ioctl, i.e. I915_EXEC_RENDER, I915_EXEC_BSD etc.
> * (Note I915_EXEC_DEFAULT is a symbolic value and is mapped to
> * the I915_EXEC_RENDER engine for execution, and so never reported
> * as active itself.)
> */
>
Very good, r-b on the resulting patch.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-01-15 16:24 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-15 11:06 [PATCH] drm/i915: Seal busy-ioctl uABI and prevent leaking of internal ids Chris Wilson
2016-01-15 11:24 ` ✗ Fi.CI.BAT: warning for " Patchwork
2016-01-21 11:05 ` Tvrtko Ursulin
2016-01-15 11:58 ` [PATCH] " Tvrtko Ursulin
2016-01-15 12:27 ` Chris Wilson
2016-01-15 13:22 ` Tvrtko Ursulin
2016-01-15 13:57 ` Chris Wilson
2016-01-15 16:02 ` Tvrtko Ursulin
2016-01-15 16:19 ` Chris Wilson
2016-01-15 16:24 ` Tvrtko Ursulin [this message]
2016-01-15 13:53 ` [PATCH igt] tests: Add gem_busy Chris Wilson
2016-01-15 14:45 ` Tvrtko Ursulin
2016-01-15 15:24 ` Chris Wilson
2016-01-15 16:51 ` [PATCH v2] drm/i915: Seal busy-ioctl uABI and prevent leaking of internal ids Chris Wilson
2016-01-15 17:07 ` Chris Wilson
2016-01-21 10:38 ` Daniel Vetter
2016-01-15 17:49 ` ✗ Fi.CI.BAT: failure for drm/i915: Seal busy-ioctl uABI and prevent leaking of internal ids (rev2) Patchwork
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=56991D52.6040804@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox