* [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT
@ 2014-05-01 7:18 Chris Wilson
2014-05-01 18:02 ` Ben Widawsky
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Chris Wilson @ 2014-05-01 7:18 UTC (permalink / raw)
To: intel-gfx; +Cc: Ben Widawsky, Mika Kuoppala
Since we only count hangs towards the owner of the fd issuing the
command, we can allow that fd to inspect its own default context without
leaking global information. We introduced per-fd accounting with
commit 0eea67eb26000657079b7fc41079097942339452
Author: Ben Widawsky <ben@bwidawsk.net>
Date: Fri Dec 6 14:11:19 2013 -0800
drm/i915: Create a per file_priv default context
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
---
drivers/gpu/drm/i915/intel_uncore.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 2adf6aa..f8f13ae 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -930,9 +930,6 @@ int i915_get_reset_stats_ioctl(struct drm_device *dev,
if (args->flags || args->pad)
return -EINVAL;
- if (args->ctx_id == DEFAULT_CONTEXT_ID && !capable(CAP_SYS_ADMIN))
- return -EPERM;
-
ret = mutex_lock_interruptible(&dev->struct_mutex);
if (ret)
return ret;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT
2014-05-01 7:18 [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT Chris Wilson
@ 2014-05-01 18:02 ` Ben Widawsky
2014-05-02 11:15 ` Mika Kuoppala
2014-05-02 11:16 ` [PATCH 1/1] tests/gem_reset_stats: EPERM check not needed Mika Kuoppala
2 siblings, 0 replies; 4+ messages in thread
From: Ben Widawsky @ 2014-05-01 18:02 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx, Mika Kuoppala
On Thu, May 01, 2014 at 08:18:44AM +0100, Chris Wilson wrote:
> Since we only count hangs towards the owner of the fd issuing the
> command, we can allow that fd to inspect its own default context without
> leaking global information. We introduced per-fd accounting with
>
> commit 0eea67eb26000657079b7fc41079097942339452
> Author: Ben Widawsky <ben@bwidawsk.net>
> Date: Fri Dec 6 14:11:19 2013 -0800
>
> drm/i915: Create a per file_priv default context
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Ben Widawsky <ben@bwidawsk.net>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> Cc: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ben Widawsky <ben@bwidawsk.net>
I can bump it to a r-b if Mika doesn't
> ---
> drivers/gpu/drm/i915/intel_uncore.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 2adf6aa..f8f13ae 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -930,9 +930,6 @@ int i915_get_reset_stats_ioctl(struct drm_device *dev,
> if (args->flags || args->pad)
> return -EINVAL;
>
> - if (args->ctx_id == DEFAULT_CONTEXT_ID && !capable(CAP_SYS_ADMIN))
> - return -EPERM;
> -
> ret = mutex_lock_interruptible(&dev->struct_mutex);
> if (ret)
> return ret;
> --
> 1.7.9.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ben Widawsky, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT
2014-05-01 7:18 [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT Chris Wilson
2014-05-01 18:02 ` Ben Widawsky
@ 2014-05-02 11:15 ` Mika Kuoppala
2014-05-02 11:16 ` [PATCH 1/1] tests/gem_reset_stats: EPERM check not needed Mika Kuoppala
2 siblings, 0 replies; 4+ messages in thread
From: Mika Kuoppala @ 2014-05-02 11:15 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: Ben Widawsky
Chris Wilson <chris@chris-wilson.co.uk> writes:
> Since we only count hangs towards the owner of the fd issuing the
> command, we can allow that fd to inspect its own default context without
> leaking global information. We introduced per-fd accounting with
>
> commit 0eea67eb26000657079b7fc41079097942339452
> Author: Ben Widawsky <ben@bwidawsk.net>
> Date: Fri Dec 6 14:11:19 2013 -0800
>
> drm/i915: Create a per file_priv default context
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Ben Widawsky <ben@bwidawsk.net>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> Cc: Kenneth Graunke <kenneth@whitecape.org>
I think we need ack from Kenneth too.
I will fix testcase to not expect EPERM for nonroot.
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
> drivers/gpu/drm/i915/intel_uncore.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 2adf6aa..f8f13ae 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -930,9 +930,6 @@ int i915_get_reset_stats_ioctl(struct drm_device *dev,
> if (args->flags || args->pad)
> return -EINVAL;
>
> - if (args->ctx_id == DEFAULT_CONTEXT_ID && !capable(CAP_SYS_ADMIN))
> - return -EPERM;
> -
> ret = mutex_lock_interruptible(&dev->struct_mutex);
> if (ret)
> return ret;
> --
> 1.7.9.5
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/1] tests/gem_reset_stats: EPERM check not needed
2014-05-01 7:18 [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT Chris Wilson
2014-05-01 18:02 ` Ben Widawsky
2014-05-02 11:15 ` Mika Kuoppala
@ 2014-05-02 11:16 ` Mika Kuoppala
2 siblings, 0 replies; 4+ messages in thread
From: Mika Kuoppala @ 2014-05-02 11:16 UTC (permalink / raw)
To: intel-gfx
Without root we used to get EPERM if we tried to aquire
default context statistics. Now we have per fd statistics
so only thing which is hidden from us without root access,
is the global reset count.
Drop EPERM and check that global reset count is always zero
for nonroot.
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
tests/gem_reset_stats.c | 30 +++++++++---------------------
1 file changed, 9 insertions(+), 21 deletions(-)
diff --git a/tests/gem_reset_stats.c b/tests/gem_reset_stats.c
index c227798..898f696 100644
--- a/tests/gem_reset_stats.c
+++ b/tests/gem_reset_stats.c
@@ -913,11 +913,7 @@ static void test_reset_count(const bool create_ctx)
igt_drop_root();
c2 = get_reset_count(fd, ctx);
-
- if (ctx == 0)
- igt_assert(c2 == -EPERM);
- else
- igt_assert(c2 == 0);
+ igt_assert(c2 == 0);
}
igt_waitchildren();
@@ -952,45 +948,37 @@ static int _test_params(int fd, int ctx, uint32_t flags, uint32_t pad)
return 0;
}
-typedef enum { root = 0, user } cap_t;
-
-static void _check_param_ctx(const int fd, const int ctx, const cap_t cap)
+static void _check_param_ctx(const int fd, const int ctx)
{
const uint32_t bad = rand() + 1;
- if (ctx == 0) {
- if (cap == root)
- igt_assert(_test_params(fd, ctx, 0, 0) == 0);
- else
- igt_assert(_test_params(fd, ctx, 0, 0) == -EPERM);
- }
-
+ igt_assert(_test_params(fd, ctx, 0, 0) == 0);
igt_assert(_test_params(fd, ctx, 0, bad) == -EINVAL);
igt_assert(_test_params(fd, ctx, bad, 0) == -EINVAL);
igt_assert(_test_params(fd, ctx, bad, bad) == -EINVAL);
}
-static void check_params(const int fd, const int ctx, cap_t cap)
+static void check_params(const int fd, const int ctx)
{
igt_assert(ioctl(fd, GET_RESET_STATS_IOCTL, 0) == -1);
igt_assert(_test_params(fd, 0xbadbad, 0, 0) == -ENOENT);
- _check_param_ctx(fd, ctx, cap);
+ _check_param_ctx(fd, ctx);
}
static void _test_param(const int fd, const int ctx)
{
- check_params(fd, ctx, root);
+ check_params(fd, ctx);
igt_fork(child, 1) {
- check_params(fd, ctx, root);
+ check_params(fd, ctx);
igt_drop_root();
- check_params(fd, ctx, user);
+ check_params(fd, ctx);
}
- check_params(fd, ctx, root);
+ check_params(fd, ctx);
igt_waitchildren();
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-05-02 11:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-01 7:18 [PATCH] drm/i915: Hang counting is now always per-fd, so relax the ioctl for DEFAULT_CONTEXT Chris Wilson
2014-05-01 18:02 ` Ben Widawsky
2014-05-02 11:15 ` Mika Kuoppala
2014-05-02 11:16 ` [PATCH 1/1] tests/gem_reset_stats: EPERM check not needed Mika Kuoppala
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox