* [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array
@ 2018-01-25 1:00 Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/gem_ctx_param: Update invalid param Antonio Argenziano
` (4 more replies)
0 siblings, 5 replies; 16+ messages in thread
From: Antonio Argenziano @ 2018-01-25 1:00 UTC (permalink / raw)
To: igt-dev
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Winiarski <michal.winiarski@intel.com>
---
lib/igt_aux.c | 19 +++++++++++++++++++
lib/igt_aux.h | 1 +
2 files changed, 20 insertions(+)
diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 8ca0b60d..8012d8ae 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -577,6 +577,25 @@ void igt_exchange_int(void *array, unsigned i, unsigned j)
int_arr[j] = tmp;
}
+/**
+ * igt_exchange_int64:
+ * @array: pointer to the array of int64_t
+ * @i: first position
+ * @j: second position
+ *
+ * Exchanges the two values at array indices @i and @j. Useful as an exchange
+ * function for igt_permute_array().
+ */
+void igt_exchange_int64(void *array, unsigned i, unsigned j)
+{
+ int64_t *int_arr, tmp;
+ int_arr = array;
+
+ tmp = int_arr[i];
+ int_arr[i] = int_arr[j];
+ int_arr[j] = tmp;
+}
+
/**
* igt_permute_array:
* @array: pointer to array
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 02e70126..60d4de71 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -117,6 +117,7 @@ bool __igt_sigiter_continue(struct __igt_sigiter *iter, bool interrupt);
for (struct timespec t__={}; igt_nsec_elapsed(&t__)>>20 < (t); )
void igt_exchange_int(void *array, unsigned i, unsigned j);
+void igt_exchange_int64(void *array, unsigned i, unsigned j);
void igt_permute_array(void *array, unsigned size,
void (*exchange_func)(void *array,
unsigned i,
--
2.14.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [igt-dev] [PATCH i-g-t v4 2/3] tests/gem_ctx_param: Update invalid param
2018-01-25 1:00 [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array Antonio Argenziano
@ 2018-01-25 1:00 ` Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users Antonio Argenziano
` (3 subsequent siblings)
4 siblings, 0 replies; 16+ messages in thread
From: Antonio Argenziano @ 2018-01-25 1:00 UTC (permalink / raw)
To: igt-dev
Since commit: drm/i915/scheduler: Support user-defined priorities, the
driver support an extra context param to set context's priority. Add
tests for that interface and update invalid tests.
v2:
- Add arg size validation test. (Chris)
- Add arg value overflow test. (Chris)
- Add test for unsupported platforms. (Chris)
- Feed interface with all priority values and in random order. (Chris)
v3:
- Parametrize tests. (Chris)
v4:
- Code-style refactoring. (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Winiarski <michal.winiarski@intel.com>
---
tests/gem_ctx_param.c | 189 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 188 insertions(+), 1 deletion(-)
diff --git a/tests/gem_ctx_param.c b/tests/gem_ctx_param.c
index c20ae1ee..180202b9 100644
--- a/tests/gem_ctx_param.c
+++ b/tests/gem_ctx_param.c
@@ -25,9 +25,147 @@
*/
#include "igt.h"
+#include <limits.h>
IGT_TEST_DESCRIPTION("Basic test for context set/get param input validation.");
+#define MAX_USER_SET_PRIO I915_CONTEXT_DEFAULT_PRIORITY /* Current max prio for non-root users */
+#define PRIO_RANGE (I915_CONTEXT_MAX_USER_PRIORITY - I915_CONTEXT_MIN_USER_PRIORITY)
+#define USER_PRIO_RANGE (MAX_USER_SET_PRIO - I915_CONTEXT_MIN_USER_PRIORITY)
+
+#define ROOT (0x1 << 3)
+#define NEW_CTX (0x1 << 2)
+#define VALID_PRIO (0x1 << 1)
+#define OVERFLOW_PRIO (0x1 << 0)
+
+#define IS_ROOT(flags) (flags & ROOT)
+
+static int is_priority_valid(int64_t value, unsigned flags)
+{
+ if (IS_ROOT(flags)) {
+ if ((value - I915_CONTEXT_MIN_USER_PRIORITY) <= PRIO_RANGE &&
+ (value - I915_CONTEXT_MIN_USER_PRIORITY) >= 0)
+ return 0;
+
+ return -EINVAL;
+ } else {
+ if ((value - I915_CONTEXT_MIN_USER_PRIORITY) <= USER_PRIO_RANGE &&
+ (value - I915_CONTEXT_MIN_USER_PRIORITY) >= 0)
+ return 0;
+
+ if ((value - I915_CONTEXT_MIN_USER_PRIORITY) <= PRIO_RANGE &&
+ (value - I915_CONTEXT_MIN_USER_PRIORITY) >= 0)
+ return -EPERM;
+
+ return -EINVAL;
+ }
+}
+
+static void
+get_prio_values_valid(int64_t **prio_values, unsigned *size, unsigned flags)
+{
+ const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
+ int64_t *values;
+
+ *size = (IS_ROOT(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
+ values = (int64_t*) calloc(*size, sizeof(int64_t));
+ igt_assert(values);
+
+ for (int i = 0; i < *size; i++) {
+ values[i] = overflow ^ (i + I915_CONTEXT_MIN_USER_PRIORITY);
+ }
+
+ *prio_values = values;
+}
+
+static void
+get_prio_values_invalid(int64_t **prio_values, unsigned *size, unsigned flags)
+{
+ const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
+ int64_t *values;
+
+ if (IS_ROOT(flags)) {
+ int64_t test_values[] = { /* Test space too big pick significant values */
+ INT_MIN,
+ I915_CONTEXT_MIN_USER_PRIORITY - 1,
+ I915_CONTEXT_MAX_USER_PRIORITY + 1,
+ INT_MAX
+ };
+
+ *size = ARRAY_SIZE(test_values);
+ values = (int64_t*) calloc(*size, sizeof(int64_t));
+
+ for (int i = 0; i < *size; i++)
+ values[i] = overflow ^ test_values[i];
+ } else {
+ *size = PRIO_RANGE - USER_PRIO_RANGE;
+ values = (int64_t*) calloc(*size, sizeof(int64_t));
+
+ for (int i = 0; i < *size; i++)
+ values[i] = overflow ^ (i + (MAX_USER_SET_PRIO + 1));
+ }
+
+ *prio_values = values;
+}
+
+static void
+get_prio_values(int64_t **prio_values, unsigned *size, unsigned flags)
+{
+ if (flags & VALID_PRIO)
+ get_prio_values_valid(prio_values, size, flags);
+ else
+ get_prio_values_invalid(prio_values, size, flags);
+
+ igt_permute_array(*prio_values, *size, igt_exchange_int64);
+}
+
+static void
+set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
+{
+ uint32_t ctx = 0;
+ int expected_ret;
+ int64_t old_value;
+ int64_t *prio_values;
+ unsigned size;
+
+ igt_fork(child, 1) {
+ get_prio_values(&prio_values, &size, flags);
+
+ if (flags & NEW_CTX)
+ ctx = gem_context_create(fd);
+ arg.ctx_id = ctx;
+
+ if (!(flags & ROOT)) {
+ igt_debug("Dropping root privilege\n");
+ igt_drop_root();
+ }
+
+ gem_context_get_param(fd, &arg);
+ old_value = arg.value;
+
+ for (int i = 0; i < size; i++) {
+ arg.value = prio_values[i];
+ expected_ret = is_priority_valid(arg.value, flags);
+
+ igt_assert_eq(__gem_context_set_param(fd, &arg), expected_ret);
+
+ gem_context_get_param(fd, &arg);
+ if (expected_ret)
+ igt_assert_eq(arg.value, old_value); /* unchanged */
+ else
+ igt_assert_eq(arg.value, prio_values[i]); /* updated */
+ }
+
+ arg.value = 0;
+ gem_context_set_param(fd, &arg);
+
+ if (flags & NEW_CTX)
+ gem_context_destroy(fd, ctx);
+ }
+
+ igt_waitchildren();
+}
+
igt_main
{
struct drm_i915_gem_context_param arg;
@@ -136,11 +274,60 @@ igt_main
gem_context_set_param(fd, &arg);
}
+ arg.param = I915_CONTEXT_PARAM_PRIORITY;
+
+ igt_subtest("set-priority-not-supported") {
+ igt_require(!gem_scheduler_has_ctx_priority(fd));
+
+ arg.ctx_id = ctx;
+ arg.size = 0;
+
+ igt_assert_eq(__gem_context_set_param(fd, &arg), -ENODEV);
+ }
+
+ igt_subtest_group {
+ igt_fixture {
+ igt_require(gem_scheduler_has_ctx_priority(fd));
+ }
+
+ igt_subtest("get-priority-new-ctx") {
+ struct drm_i915_gem_context_param local_arg = arg;
+ uint32_t local_ctx = gem_context_create(fd);
+
+ local_arg.ctx_id = local_ctx;
+
+ gem_context_get_param(fd, &local_arg);
+ igt_assert_eq(local_arg.value, 0);
+
+ gem_context_destroy(fd, local_ctx);
+ }
+
+ igt_subtest("set-priority-invalid-size") {
+ struct drm_i915_gem_context_param local_arg = arg;
+ local_arg.ctx_id = ctx;
+ local_arg.value = 0;
+ local_arg.size = ~0;
+
+ igt_assert_eq(__gem_context_set_param(fd, &local_arg), -EINVAL);
+ }
+
+ for (unsigned flags = 0;
+ flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
+ flags++) {
+ igt_subtest_f("set-priority%s%s%s%s",
+ (flags & ROOT) ? "-root" : "-user",
+ (flags & NEW_CTX) ? "-new-ctx" : "-default-ctx",
+ (flags & VALID_PRIO) ? "" : "-invalid",
+ (flags & OVERFLOW_PRIO) ? "-overflow" : "")
+ set_priority(fd, arg, flags);
+ }
+ }
+
/* NOTE: This testcase intentionally tests for the next free parameter
* to catch ABI extensions. Don't "fix" this testcase without adding all
* the tests for the new param first.
*/
- arg.param = I915_CONTEXT_PARAM_BANNABLE + 1;
+ arg.param = I915_CONTEXT_PARAM_PRIORITY + 1;
igt_subtest("invalid-param-get") {
arg.ctx_id = ctx;
--
2.14.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-01-25 1:00 [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/gem_ctx_param: Update invalid param Antonio Argenziano
@ 2018-01-25 1:00 ` Antonio Argenziano
2018-01-25 11:37 ` Chris Wilson
2018-02-28 14:10 ` Arkadiusz Hiler
2018-01-25 1:18 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array Patchwork
` (2 subsequent siblings)
4 siblings, 2 replies; 16+ messages in thread
From: Antonio Argenziano @ 2018-01-25 1:00 UTC (permalink / raw)
To: igt-dev
Adds tests for !SYS_NICE users trying to change the priority level of a
context using the provided IOCTL interface.
Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Winiarski <michal.winiarski@intel.com>
---
README | 1 +
configure.ac | 8 ++++++++
meson.build | 3 +++
tests/Makefile.am | 7 +++++++
tests/Makefile.sources | 1 -
tests/gem_ctx_param.c | 42 ++++++++++++++++++++++++++++++++++++------
6 files changed, 55 insertions(+), 7 deletions(-)
diff --git a/README b/README
index 7cd78e44..89c10beb 100644
--- a/README
+++ b/README
@@ -147,6 +147,7 @@ the default configuration (package names may vary):
libkmod-dev
libpciaccess-dev
libprocps-dev
+ libcap-dev
libunwind-dev
python-docutils
x11proto-dri2-dev
diff --git a/configure.ac b/configure.ac
index e13a3b74..2d67e3f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -81,6 +81,13 @@ AC_CHECK_FUNCS(timer_create, [], [
])
AC_SUBST(TIMER_LIBS)
+AC_CHECK_HEADER(sys/capability.h, [have_libcap=yes])
+if test x$have_libcap = xyes; then
+ AC_DEFINE(HAVE_LIBCAP, 1, [Enable libcap support.])
+fi
+
+AM_CONDITIONAL(HAVE_LIBCAP, [test "x$have_libcap" = xyes])
+
dnl Check for CPUID
cpuid="yes"
AC_TRY_LINK([
@@ -126,6 +133,7 @@ PKG_CHECK_MODULES(KMOD, [libkmod])
PKG_CHECK_MODULES(PROCPS, [libprocps])
PKG_CHECK_MODULES(LIBUNWIND, [libunwind])
PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
+#PKG_CHECK_MODULES(LIBCAP, [libcap-dev], [have_libcap=yes], [have_libcap=no])
if test x$have_valgrind = xyes; then
AC_DEFINE(HAVE_VALGRIND, 1, [Enable valgrind annotation support.])
diff --git a/meson.build b/meson.build
index 9036feb1..937edf52 100644
--- a/meson.build
+++ b/meson.build
@@ -106,6 +106,9 @@ endif
if cc.has_header('sys/io.h')
config.set('HAVE_SYS_IO_H', 1)
endif
+if cc.has_header('sys/capability.h')
+ config.set('HAVE_LIBCAP', 1)
+endif
if cc.has_header('cpuid.h')
# FIXME: Do we need the example link test from configure.ac?
config.set('HAVE_CPUID_H', 1)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1b9a7b0a..c482e970 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -14,6 +14,12 @@ if BUILD_VC4
TESTS_progs += $(VC4_TESTS)
endif
+if HAVE_LIBCAP
+TESTS_progs += \
+ gem_ctx_param \
+ $(NULL)
+endif
+
if HAVE_CHAMELIUM
TESTS_progs += \
kms_chamelium \
@@ -106,6 +112,7 @@ gem_close_race_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_close_race_LDADD = $(LDADD) -lpthread
gem_ctx_thrash_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_ctx_thrash_LDADD = $(LDADD) -lpthread
+gem_ctx_param_LDADD = $(LDADD) -lcap
gem_exec_parallel_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_exec_parallel_LDADD = $(LDADD) -lpthread
gem_fence_thrash_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index e4e06d01..4fd3c7e8 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -57,7 +57,6 @@ TESTS_progs = \
gem_ctx_bad_exec \
gem_ctx_create \
gem_ctx_exec \
- gem_ctx_param \
gem_ctx_switch \
gem_ctx_thrash \
gem_double_irq_loop \
diff --git a/tests/gem_ctx_param.c b/tests/gem_ctx_param.c
index 180202b9..c51b3290 100644
--- a/tests/gem_ctx_param.c
+++ b/tests/gem_ctx_param.c
@@ -26,6 +26,7 @@
#include "igt.h"
#include <limits.h>
+#include <sys/capability.h>
IGT_TEST_DESCRIPTION("Basic test for context set/get param input validation.");
@@ -33,16 +34,17 @@ IGT_TEST_DESCRIPTION("Basic test for context set/get param input validation.");
#define PRIO_RANGE (I915_CONTEXT_MAX_USER_PRIORITY - I915_CONTEXT_MIN_USER_PRIORITY)
#define USER_PRIO_RANGE (MAX_USER_SET_PRIO - I915_CONTEXT_MIN_USER_PRIORITY)
+#define NICE (0x1 << 4)
#define ROOT (0x1 << 3)
#define NEW_CTX (0x1 << 2)
#define VALID_PRIO (0x1 << 1)
#define OVERFLOW_PRIO (0x1 << 0)
-#define IS_ROOT(flags) (flags & ROOT)
+#define IS_ROOT_AND_NICE(flags) ((flags & ROOT) && (flags & NICE))
static int is_priority_valid(int64_t value, unsigned flags)
{
- if (IS_ROOT(flags)) {
+ if (IS_ROOT_AND_NICE(flags)) {
if ((value - I915_CONTEXT_MIN_USER_PRIORITY) <= PRIO_RANGE &&
(value - I915_CONTEXT_MIN_USER_PRIORITY) >= 0)
return 0;
@@ -67,7 +69,7 @@ get_prio_values_valid(int64_t **prio_values, unsigned *size, unsigned flags)
const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
int64_t *values;
- *size = (IS_ROOT(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
+ *size = (IS_ROOT_AND_NICE(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
values = (int64_t*) calloc(*size, sizeof(int64_t));
igt_assert(values);
@@ -84,7 +86,7 @@ get_prio_values_invalid(int64_t **prio_values, unsigned *size, unsigned flags)
const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
int64_t *values;
- if (IS_ROOT(flags)) {
+ if (IS_ROOT_AND_NICE(flags)) {
int64_t test_values[] = { /* Test space too big pick significant values */
INT_MIN,
I915_CONTEXT_MIN_USER_PRIORITY - 1,
@@ -119,6 +121,25 @@ get_prio_values(int64_t **prio_values, unsigned *size, unsigned flags)
igt_permute_array(*prio_values, *size, igt_exchange_int64);
}
+static void lower_sys_nice(void)
+{
+ cap_t caps;
+ cap_value_t cap_list = CAP_SYS_NICE;
+ pid_t pid = getpid();
+ cap_flag_value_t cap_val;
+
+ caps = cap_get_pid(pid);
+ igt_require(caps);
+
+ cap_get_flag(caps, cap_list, CAP_EFFECTIVE, &cap_val);
+ if (cap_val == CAP_CLEAR)
+ return; /* CAP_SYS_NICE already unset */
+
+ igt_assert(cap_set_flag(caps, CAP_EFFECTIVE, 1, &cap_list, CAP_CLEAR) == 0);
+ igt_assert(cap_set_proc(caps) == 0);
+ cap_free(caps);
+}
+
static void
set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
{
@@ -140,6 +161,11 @@ set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
igt_drop_root();
}
+ if (!(flags & NICE)) {
+ igt_debug("Dropping SYS_NICE capability\n");
+ lower_sys_nice();
+ }
+
gem_context_get_param(fd, &arg);
old_value = arg.value;
@@ -312,9 +338,13 @@ igt_main
}
for (unsigned flags = 0;
- flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
+ flags <= (NICE | ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
flags++) {
- igt_subtest_f("set-priority%s%s%s%s",
+ if (!(flags & NICE) && !(flags & ROOT))
+ continue; /* Needs to be rot to set properties */
+
+ igt_subtest_f("set-priority%s%s%s%s%s",
+ (flags & NICE) ? "" : "-not-nice",
(flags & ROOT) ? "-root" : "-user",
(flags & NEW_CTX) ? "-new-ctx" : "-default-ctx",
(flags & VALID_PRIO) ? "" : "-invalid",
--
2.14.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array
2018-01-25 1:00 [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/gem_ctx_param: Update invalid param Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users Antonio Argenziano
@ 2018-01-25 1:18 ` Patchwork
2018-01-25 2:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-01-25 11:21 ` [igt-dev] [PATCH i-g-t v4 1/3] " Ville Syrjälä
4 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2018-01-25 1:18 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array
URL : https://patchwork.freedesktop.org/series/37082/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
ec7d71660694157af698741eac3764203bf338ec igt/kms_frontbuffer_tracking: Show FBC status during the wait
with latest DRM-Tip kernel build CI_DRM_3683
9d8467fe5626 drm-tip: 2018y-01m-24d-19h-59m-41s UTC integration manifest
Testlist changes:
-igt@gem_ctx_param@basic
-igt@gem_ctx_param@basic-default
-igt@gem_ctx_param@invalid-ctx-get
-igt@gem_ctx_param@invalid-ctx-set
-igt@gem_ctx_param@invalid-param-get
-igt@gem_ctx_param@invalid-param-set
-igt@gem_ctx_param@invalid-size-get
-igt@gem_ctx_param@invalid-size-set
-igt@gem_ctx_param@non-root-set
-igt@gem_ctx_param@non-root-set-no-zeromap
-igt@gem_ctx_param@root-set
-igt@gem_ctx_param@root-set-no-zeromap-disabled
-igt@gem_ctx_param@root-set-no-zeromap-enabled
Test debugfs_test:
Subgroup read_all_entries:
dmesg-warn -> DMESG-FAIL (fi-elk-e7500) fdo#103989
pass -> INCOMPLETE (fi-snb-2520m) fdo#103713
Test gem_mmap_gtt:
Subgroup basic-small-bo-tiledx:
fail -> PASS (fi-gdg-551) fdo#102575
fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fi-bdw-5557u total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:21 time:421s
fi-bdw-gvtdvm total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:24 time:432s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:62 time:373s
fi-bsw-n3050 total:288 pass:240 dwarn:0 dfail:0 fail:0 skip:46 time:492s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:103 time:285s
fi-bxt-dsi total:288 pass:256 dwarn:0 dfail:0 fail:0 skip:30 time:486s
fi-bxt-j4205 total:288 pass:257 dwarn:0 dfail:0 fail:0 skip:29 time:489s
fi-byt-j1900 total:288 pass:251 dwarn:0 dfail:0 fail:0 skip:35 time:472s
fi-byt-n2820 total:288 pass:247 dwarn:0 dfail:0 fail:0 skip:39 time:458s
fi-elk-e7500 total:224 pass:168 dwarn:9 dfail:1 fail:0 skip:43
fi-gdg-551 total:288 pass:180 dwarn:0 dfail:0 fail:0 skip:106 time:279s
fi-glk-1 total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:28 time:515s
fi-hsw-4770 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:27 time:393s
fi-hsw-4770r total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:27 time:403s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:58 time:413s
fi-ivb-3520m total:288 pass:257 dwarn:0 dfail:0 fail:0 skip:29 time:461s
fi-ivb-3770 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:33 time:413s
fi-kbl-7500u total:288 pass:261 dwarn:1 dfail:0 fail:0 skip:24 time:461s
fi-kbl-7560u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:19 time:497s
fi-kbl-7567u total:288 pass:266 dwarn:0 dfail:0 fail:0 skip:20 time:450s
fi-kbl-r total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:27 time:500s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:63 time:578s
fi-skl-6260u total:288 pass:266 dwarn:0 dfail:0 fail:0 skip:20 time:427s
fi-skl-6600u total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:27 time:511s
fi-skl-6700hq total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:26 time:528s
fi-skl-6700k2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:24 time:492s
fi-skl-6770hq total:288 pass:266 dwarn:0 dfail:0 fail:0 skip:20 time:486s
fi-skl-guc total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:28 time:418s
fi-skl-gvtdvm total:288 pass:263 dwarn:0 dfail:0 fail:0 skip:23 time:434s
fi-snb-2520m total:3 pass:2 dwarn:0 dfail:0 fail:0 skip:0
fi-snb-2600 total:288 pass:246 dwarn:0 dfail:0 fail:0 skip:40 time:403s
Blacklisted hosts:
fi-cfl-s2 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:26 time:568s
fi-glk-dsi total:288 pass:256 dwarn:0 dfail:0 fail:0 skip:30 time:477s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_822/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array
2018-01-25 1:00 [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array Antonio Argenziano
` (2 preceding siblings ...)
2018-01-25 1:18 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array Patchwork
@ 2018-01-25 2:38 ` Patchwork
2018-01-25 11:21 ` [igt-dev] [PATCH i-g-t v4 1/3] " Ville Syrjälä
4 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2018-01-25 2:38 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array
URL : https://patchwork.freedesktop.org/series/37082/
State : failure
== Summary ==
Test pm_rc6_residency:
Subgroup rc6-accuracy:
skip -> PASS (shard-snb)
Test kms_flip:
Subgroup 2x-plain-flip-fb-recreate:
pass -> FAIL (shard-hsw) fdo#100368 +2
Subgroup 2x-flip-vs-modeset-interruptible:
dmesg-warn -> PASS (shard-hsw)
Subgroup flip-vs-expired-vblank-interruptible:
pass -> FAIL (shard-apl) fdo#102887
Subgroup 2x-wf_vblank-ts-check-interruptible:
pass -> FAIL (shard-hsw) fdo#103928
Test kms_sysfs_edid_timing:
pass -> WARN (shard-apl) fdo#100047
Test gem_pwrite:
Subgroup big-gtt-forwards:
pass -> SKIP (shard-apl)
Test kms_cursor_legacy:
Subgroup flip-vs-cursor-crc-atomic:
fail -> PASS (shard-apl)
Test gem_eio:
Subgroup in-flight-contexts:
fail -> PASS (shard-hsw) fdo#104676
Test perf_pmu:
Subgroup busy-double-start-vcs0:
pass -> INCOMPLETE (shard-apl)
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
fdo#104676 https://bugs.freedesktop.org/show_bug.cgi?id=104676
shard-apl total:2807 pass:1725 dwarn:1 dfail:0 fail:21 skip:1058 time:12333s
shard-hsw total:2825 pass:1723 dwarn:1 dfail:0 fail:10 skip:1090 time:12022s
shard-snb total:2825 pass:1319 dwarn:1 dfail:0 fail:9 skip:1496 time:6554s
Blacklisted hosts:
shard-kbl total:2825 pass:1826 dwarn:36 dfail:0 fail:23 skip:940 time:9533s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_822/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array
2018-01-25 1:00 [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array Antonio Argenziano
` (3 preceding siblings ...)
2018-01-25 2:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-01-25 11:21 ` Ville Syrjälä
2018-01-25 11:32 ` Chris Wilson
2018-01-25 11:35 ` Jani Nikula
4 siblings, 2 replies; 16+ messages in thread
From: Ville Syrjälä @ 2018-01-25 11:21 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
On Wed, Jan 24, 2018 at 05:00:01PM -0800, Antonio Argenziano wrote:
> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Winiarski <michal.winiarski@intel.com>
> ---
> lib/igt_aux.c | 19 +++++++++++++++++++
> lib/igt_aux.h | 1 +
> 2 files changed, 20 insertions(+)
>
> diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> index 8ca0b60d..8012d8ae 100644
> --- a/lib/igt_aux.c
> +++ b/lib/igt_aux.c
> @@ -577,6 +577,25 @@ void igt_exchange_int(void *array, unsigned i, unsigned j)
> int_arr[j] = tmp;
> }
>
> +/**
> + * igt_exchange_int64:
> + * @array: pointer to the array of int64_t
> + * @i: first position
> + * @j: second position
> + *
> + * Exchanges the two values at array indices @i and @j. Useful as an exchange
> + * function for igt_permute_array().
> + */
> +void igt_exchange_int64(void *array, unsigned i, unsigned j)
> +{
> + int64_t *int_arr, tmp;
Why void* when you really mean int64_t*?
> + int_arr = array;
> +
> + tmp = int_arr[i];
> + int_arr[i] = int_arr[j];
> + int_arr[j] = tmp;
igt_swap()
> +}
> +
> /**
> * igt_permute_array:
> * @array: pointer to array
> diff --git a/lib/igt_aux.h b/lib/igt_aux.h
> index 02e70126..60d4de71 100644
> --- a/lib/igt_aux.h
> +++ b/lib/igt_aux.h
> @@ -117,6 +117,7 @@ bool __igt_sigiter_continue(struct __igt_sigiter *iter, bool interrupt);
> for (struct timespec t__={}; igt_nsec_elapsed(&t__)>>20 < (t); )
>
> void igt_exchange_int(void *array, unsigned i, unsigned j);
> +void igt_exchange_int64(void *array, unsigned i, unsigned j);
> void igt_permute_array(void *array, unsigned size,
> void (*exchange_func)(void *array,
> unsigned i,
> --
> 2.14.2
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Ville Syrjälä
Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array
2018-01-25 11:21 ` [igt-dev] [PATCH i-g-t v4 1/3] " Ville Syrjälä
@ 2018-01-25 11:32 ` Chris Wilson
2018-01-25 11:35 ` Jani Nikula
1 sibling, 0 replies; 16+ messages in thread
From: Chris Wilson @ 2018-01-25 11:32 UTC (permalink / raw)
To: Ville Syrjälä, Antonio Argenziano; +Cc: igt-dev
Quoting Ville Syrjälä (2018-01-25 11:21:50)
> On Wed, Jan 24, 2018 at 05:00:01PM -0800, Antonio Argenziano wrote:
> > Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Michal Winiarski <michal.winiarski@intel.com>
> > ---
> > lib/igt_aux.c | 19 +++++++++++++++++++
> > lib/igt_aux.h | 1 +
> > 2 files changed, 20 insertions(+)
> >
> > diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> > index 8ca0b60d..8012d8ae 100644
> > --- a/lib/igt_aux.c
> > +++ b/lib/igt_aux.c
> > @@ -577,6 +577,25 @@ void igt_exchange_int(void *array, unsigned i, unsigned j)
> > int_arr[j] = tmp;
> > }
> >
> > +/**
> > + * igt_exchange_int64:
> > + * @array: pointer to the array of int64_t
> > + * @i: first position
> > + * @j: second position
> > + *
> > + * Exchanges the two values at array indices @i and @j. Useful as an exchange
> > + * function for igt_permute_array().
> > + */
> > +void igt_exchange_int64(void *array, unsigned i, unsigned j)
> > +{
> > + int64_t *int_arr, tmp;
>
> Why void* when you really mean int64_t*?
To fit the function prototype for igt_permute_array().
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array
2018-01-25 11:21 ` [igt-dev] [PATCH i-g-t v4 1/3] " Ville Syrjälä
2018-01-25 11:32 ` Chris Wilson
@ 2018-01-25 11:35 ` Jani Nikula
2018-01-26 16:50 ` Antonio Argenziano
1 sibling, 1 reply; 16+ messages in thread
From: Jani Nikula @ 2018-01-25 11:35 UTC (permalink / raw)
To: Ville Syrjälä, Antonio Argenziano; +Cc: igt-dev
On Thu, 25 Jan 2018, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Jan 24, 2018 at 05:00:01PM -0800, Antonio Argenziano wrote:
>> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Michal Winiarski <michal.winiarski@intel.com>
>> ---
>> lib/igt_aux.c | 19 +++++++++++++++++++
>> lib/igt_aux.h | 1 +
>> 2 files changed, 20 insertions(+)
>>
>> diff --git a/lib/igt_aux.c b/lib/igt_aux.c
>> index 8ca0b60d..8012d8ae 100644
>> --- a/lib/igt_aux.c
>> +++ b/lib/igt_aux.c
>> @@ -577,6 +577,25 @@ void igt_exchange_int(void *array, unsigned i, unsigned j)
>> int_arr[j] = tmp;
>> }
>>
>> +/**
>> + * igt_exchange_int64:
>> + * @array: pointer to the array of int64_t
>> + * @i: first position
>> + * @j: second position
>> + *
>> + * Exchanges the two values at array indices @i and @j. Useful as an exchange
>> + * function for igt_permute_array().
>> + */
>> +void igt_exchange_int64(void *array, unsigned i, unsigned j)
>> +{
>> + int64_t *int_arr, tmp;
>
> Why void* when you really mean int64_t*?
>
>> + int_arr = array;
>> +
>> + tmp = int_arr[i];
>> + int_arr[i] = int_arr[j];
>> + int_arr[j] = tmp;
>
> igt_swap()
All of the igt_exchange_whatever functions could be replaced with a
single macro that does typeof on the array parameter.
BR,
Jani.
>
>> +}
>> +
>> /**
>> * igt_permute_array:
>> * @array: pointer to array
>> diff --git a/lib/igt_aux.h b/lib/igt_aux.h
>> index 02e70126..60d4de71 100644
>> --- a/lib/igt_aux.h
>> +++ b/lib/igt_aux.h
>> @@ -117,6 +117,7 @@ bool __igt_sigiter_continue(struct __igt_sigiter *iter, bool interrupt);
>> for (struct timespec t__={}; igt_nsec_elapsed(&t__)>>20 < (t); )
>>
>> void igt_exchange_int(void *array, unsigned i, unsigned j);
>> +void igt_exchange_int64(void *array, unsigned i, unsigned j);
>> void igt_permute_array(void *array, unsigned size,
>> void (*exchange_func)(void *array,
>> unsigned i,
>> --
>> 2.14.2
>>
>> _______________________________________________
>> igt-dev mailing list
>> igt-dev@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users Antonio Argenziano
@ 2018-01-25 11:37 ` Chris Wilson
2018-01-31 0:47 ` Antonio Argenziano
2018-02-28 14:10 ` Arkadiusz Hiler
1 sibling, 1 reply; 16+ messages in thread
From: Chris Wilson @ 2018-01-25 11:37 UTC (permalink / raw)
To: Antonio Argenziano, igt-dev
Quoting Antonio Argenziano (2018-01-25 01:00:03)
> Adds tests for !SYS_NICE users trying to change the priority level of a
> context using the provided IOCTL interface.
>
> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Winiarski <michal.winiarski@intel.com>
> ---
> README | 1 +
> configure.ac | 8 ++++++++
> meson.build | 3 +++
> tests/Makefile.am | 7 +++++++
> tests/Makefile.sources | 1 -
> tests/gem_ctx_param.c | 42 ++++++++++++++++++++++++++++++++++++------
> 6 files changed, 55 insertions(+), 7 deletions(-)
>
> diff --git a/README b/README
> index 7cd78e44..89c10beb 100644
> --- a/README
> +++ b/README
> @@ -147,6 +147,7 @@ the default configuration (package names may vary):
> libkmod-dev
> libpciaccess-dev
> libprocps-dev
> + libcap-dev
> libunwind-dev
> python-docutils
> x11proto-dri2-dev
> diff --git a/configure.ac b/configure.ac
> index e13a3b74..2d67e3f1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -81,6 +81,13 @@ AC_CHECK_FUNCS(timer_create, [], [
> ])
> AC_SUBST(TIMER_LIBS)
>
> +AC_CHECK_HEADER(sys/capability.h, [have_libcap=yes])
> +if test x$have_libcap = xyes; then
> + AC_DEFINE(HAVE_LIBCAP, 1, [Enable libcap support.])
> +fi
> +
> +AM_CONDITIONAL(HAVE_LIBCAP, [test "x$have_libcap" = xyes])
> +
> dnl Check for CPUID
> cpuid="yes"
> AC_TRY_LINK([
> @@ -126,6 +133,7 @@ PKG_CHECK_MODULES(KMOD, [libkmod])
> PKG_CHECK_MODULES(PROCPS, [libprocps])
> PKG_CHECK_MODULES(LIBUNWIND, [libunwind])
> PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
> +#PKG_CHECK_MODULES(LIBCAP, [libcap-dev], [have_libcap=yes], [have_libcap=no])
>
> if test x$have_valgrind = xyes; then
> AC_DEFINE(HAVE_VALGRIND, 1, [Enable valgrind annotation support.])
> diff --git a/meson.build b/meson.build
> index 9036feb1..937edf52 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -106,6 +106,9 @@ endif
> if cc.has_header('sys/io.h')
> config.set('HAVE_SYS_IO_H', 1)
> endif
> +if cc.has_header('sys/capability.h')
> + config.set('HAVE_LIBCAP', 1)
> +endif
> if cc.has_header('cpuid.h')
> # FIXME: Do we need the example link test from configure.ac?
> config.set('HAVE_CPUID_H', 1)
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 1b9a7b0a..c482e970 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -14,6 +14,12 @@ if BUILD_VC4
> TESTS_progs += $(VC4_TESTS)
> endif
>
> +if HAVE_LIBCAP
> +TESTS_progs += \
> + gem_ctx_param \
> + $(NULL)
> +endif
CI doesn't have libcap-dev so this nerfed the tests.
Only one subtest requires LIBCAP...
> +#define NICE (0x1 << 4)
> #define ROOT (0x1 << 3)
> #define NEW_CTX (0x1 << 2)
> #define VALID_PRIO (0x1 << 1)
> #define OVERFLOW_PRIO (0x1 << 0)
Hmm, this is opposite to the usual ordering :)
>
> -#define IS_ROOT(flags) (flags & ROOT)
> +#define IS_ROOT_AND_NICE(flags) ((flags & ROOT) && (flags & NICE))
Nah, you meant IS_ROOT_OR_NICE in most places.
> static int is_priority_valid(int64_t value, unsigned flags)
> {
> - if (IS_ROOT(flags)) {
> + if (IS_ROOT_AND_NICE(flags)) {
> if ((value - I915_CONTEXT_MIN_USER_PRIORITY) <= PRIO_RANGE &&
> (value - I915_CONTEXT_MIN_USER_PRIORITY) >= 0)
> return 0;
> @@ -67,7 +69,7 @@ get_prio_values_valid(int64_t **prio_values, unsigned *size, unsigned flags)
> const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
> int64_t *values;
>
> - *size = (IS_ROOT(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
> + *size = (IS_ROOT_AND_NICE(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
> values = (int64_t*) calloc(*size, sizeof(int64_t));
> igt_assert(values);
>
> @@ -84,7 +86,7 @@ get_prio_values_invalid(int64_t **prio_values, unsigned *size, unsigned flags)
> const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
> int64_t *values;
>
> - if (IS_ROOT(flags)) {
> + if (IS_ROOT_AND_NICE(flags)) {
> int64_t test_values[] = { /* Test space too big pick significant values */
> INT_MIN,
> I915_CONTEXT_MIN_USER_PRIORITY - 1,
> @@ -119,6 +121,25 @@ get_prio_values(int64_t **prio_values, unsigned *size, unsigned flags)
> igt_permute_array(*prio_values, *size, igt_exchange_int64);
> }
>
> +static void lower_sys_nice(void)
> +{
#if HAVE_LIBCAP
> + cap_t caps;
> + cap_value_t cap_list = CAP_SYS_NICE;
> + pid_t pid = getpid();
> + cap_flag_value_t cap_val;
> +
> + caps = cap_get_pid(pid);
> + igt_require(caps);
> +
> + cap_get_flag(caps, cap_list, CAP_EFFECTIVE, &cap_val);
> + if (cap_val == CAP_CLEAR)
> + return; /* CAP_SYS_NICE already unset */
> +
> + igt_assert(cap_set_flag(caps, CAP_EFFECTIVE, 1, &cap_list, CAP_CLEAR) == 0);
> + igt_assert(cap_set_proc(caps) == 0);
> + cap_free(caps);
#else
return false;
#endif
> +}
> +
> static void
> set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
> {
> @@ -140,6 +161,11 @@ set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
> igt_drop_root();
> }
>
> + if (!(flags & NICE)) {
> + igt_debug("Dropping SYS_NICE capability\n");
> + lower_sys_nice();
Rewrite as igt_require(drop_sys_nice());
> + }
> +
> gem_context_get_param(fd, &arg);
> old_value = arg.value;
>
> @@ -312,9 +338,13 @@ igt_main
> }
>
> for (unsigned flags = 0;
> - flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
> + flags <= (NICE | ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
> flags++) {
> - igt_subtest_f("set-priority%s%s%s%s",
> + if (!(flags & NICE) && !(flags & ROOT))
> + continue; /* Needs to be rot to set properties */
Nope, just use igt_require as above.
> +
> + igt_subtest_f("set-priority%s%s%s%s%s",
> + (flags & NICE) ? "" : "-not-nice",
> (flags & ROOT) ? "-root" : "-user",
> (flags & NEW_CTX) ? "-new-ctx" : "-default-ctx",
> (flags & VALID_PRIO) ? "" : "-invalid",
> --
> 2.14.2
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array
2018-01-25 11:35 ` Jani Nikula
@ 2018-01-26 16:50 ` Antonio Argenziano
0 siblings, 0 replies; 16+ messages in thread
From: Antonio Argenziano @ 2018-01-26 16:50 UTC (permalink / raw)
To: Jani Nikula, Ville Syrjälä; +Cc: igt-dev
On 25/01/18 03:35, Jani Nikula wrote:
> On Thu, 25 Jan 2018, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>> On Wed, Jan 24, 2018 at 05:00:01PM -0800, Antonio Argenziano wrote:
>>> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>> Cc: Michal Winiarski <michal.winiarski@intel.com>
>>> ---
>>> lib/igt_aux.c | 19 +++++++++++++++++++
>>> lib/igt_aux.h | 1 +
>>> 2 files changed, 20 insertions(+)
>>>
>>> diff --git a/lib/igt_aux.c b/lib/igt_aux.c
>>> index 8ca0b60d..8012d8ae 100644
>>> --- a/lib/igt_aux.c
>>> +++ b/lib/igt_aux.c
>>> @@ -577,6 +577,25 @@ void igt_exchange_int(void *array, unsigned i, unsigned j)
>>> int_arr[j] = tmp;
>>> }
>>>
>>> +/**
>>> + * igt_exchange_int64:
>>> + * @array: pointer to the array of int64_t
>>> + * @i: first position
>>> + * @j: second position
>>> + *
>>> + * Exchanges the two values at array indices @i and @j. Useful as an exchange
>>> + * function for igt_permute_array().
>>> + */
>>> +void igt_exchange_int64(void *array, unsigned i, unsigned j)
>>> +{
>>> + int64_t *int_arr, tmp;
>>
>> Why void* when you really mean int64_t*?
>>
>>> + int_arr = array;
>>> +
>>> + tmp = int_arr[i];
>>> + int_arr[i] = int_arr[j];
>>> + int_arr[j] = tmp;
>>
>> igt_swap()
>
>
> All of the igt_exchange_whatever functions could be replaced with a
> single macro that does typeof on the array parameter.
Basically that would be igt_swap(). You would have to replace the
permute interface to make it not take a void pointer but a generic array.
I tried the following:
#define igt_permute_array(array, size) do { \
int _i; \
typeof(array) _array; \
_array = array; \
\
for (_i = size - 1; _i > 0; _i--) { \
/* yes, not perfectly uniform, who cares */ \
long _l = hars_petruska_f54_1_random_unsafe() % (_i +1); \
if (_i != _l) \
igt_swap(_array[_i], _array[_l]); \
} \
} while (0)
The problem I had is that typeof() doesn't seems to play nice with
arrays but wants a pointer type.
So it would be a pervasive change and I would prefer to make it into a
separate patchset.
Thanks,
Antonio
>
> BR,
> Jani.
>
>>
>>> +}
>>> +
>>> /**
>>> * igt_permute_array:
>>> * @array: pointer to array
>>> diff --git a/lib/igt_aux.h b/lib/igt_aux.h
>>> index 02e70126..60d4de71 100644
>>> --- a/lib/igt_aux.h
>>> +++ b/lib/igt_aux.h
>>> @@ -117,6 +117,7 @@ bool __igt_sigiter_continue(struct __igt_sigiter *iter, bool interrupt);
>>> for (struct timespec t__={}; igt_nsec_elapsed(&t__)>>20 < (t); )
>>>
>>> void igt_exchange_int(void *array, unsigned i, unsigned j);
>>> +void igt_exchange_int64(void *array, unsigned i, unsigned j);
>>> void igt_permute_array(void *array, unsigned size,
>>> void (*exchange_func)(void *array,
>>> unsigned i,
>>> --
>>> 2.14.2
>>>
>>> _______________________________________________
>>> igt-dev mailing list
>>> igt-dev@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/igt-dev
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-01-25 11:37 ` Chris Wilson
@ 2018-01-31 0:47 ` Antonio Argenziano
2018-01-31 8:01 ` Daniel Vetter
0 siblings, 1 reply; 16+ messages in thread
From: Antonio Argenziano @ 2018-01-31 0:47 UTC (permalink / raw)
To: Chris Wilson, igt-dev
On 25/01/18 03:37, Chris Wilson wrote:
> Quoting Antonio Argenziano (2018-01-25 01:00:03)
>> Adds tests for !SYS_NICE users trying to change the priority level of a
>> context using the provided IOCTL interface.
>>
>> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
>> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Michal Winiarski <michal.winiarski@intel.com>
>> ---
>> README | 1 +
>> configure.ac | 8 ++++++++
>> meson.build | 3 +++
>> tests/Makefile.am | 7 +++++++
>> tests/Makefile.sources | 1 -
>> tests/gem_ctx_param.c | 42 ++++++++++++++++++++++++++++++++++++------
>> 6 files changed, 55 insertions(+), 7 deletions(-)
>>
>> diff --git a/README b/README
>> index 7cd78e44..89c10beb 100644
>> --- a/README
>> +++ b/README
>> @@ -147,6 +147,7 @@ the default configuration (package names may vary):
>> libkmod-dev
>> libpciaccess-dev
>> libprocps-dev
>> + libcap-dev
>> libunwind-dev
>> python-docutils
>> x11proto-dri2-dev
>> diff --git a/configure.ac b/configure.ac
>> index e13a3b74..2d67e3f1 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -81,6 +81,13 @@ AC_CHECK_FUNCS(timer_create, [], [
>> ])
>> AC_SUBST(TIMER_LIBS)
>>
>> +AC_CHECK_HEADER(sys/capability.h, [have_libcap=yes])
>> +if test x$have_libcap = xyes; then
>> + AC_DEFINE(HAVE_LIBCAP, 1, [Enable libcap support.])
>> +fi
>> +
>> +AM_CONDITIONAL(HAVE_LIBCAP, [test "x$have_libcap" = xyes])
>> +
>> dnl Check for CPUID
>> cpuid="yes"
>> AC_TRY_LINK([
>> @@ -126,6 +133,7 @@ PKG_CHECK_MODULES(KMOD, [libkmod])
>> PKG_CHECK_MODULES(PROCPS, [libprocps])
>> PKG_CHECK_MODULES(LIBUNWIND, [libunwind])
>> PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
>> +#PKG_CHECK_MODULES(LIBCAP, [libcap-dev], [have_libcap=yes], [have_libcap=no])
>>
>> if test x$have_valgrind = xyes; then
>> AC_DEFINE(HAVE_VALGRIND, 1, [Enable valgrind annotation support.])
>> diff --git a/meson.build b/meson.build
>> index 9036feb1..937edf52 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -106,6 +106,9 @@ endif
>> if cc.has_header('sys/io.h')
>> config.set('HAVE_SYS_IO_H', 1)
>> endif
>> +if cc.has_header('sys/capability.h')
>> + config.set('HAVE_LIBCAP', 1)
>> +endif
>> if cc.has_header('cpuid.h')
>> # FIXME: Do we need the example link test from configure.ac?
>> config.set('HAVE_CPUID_H', 1)
>> diff --git a/tests/Makefile.am b/tests/Makefile.am
>> index 1b9a7b0a..c482e970 100644
>> --- a/tests/Makefile.am
>> +++ b/tests/Makefile.am
>> @@ -14,6 +14,12 @@ if BUILD_VC4
>> TESTS_progs += $(VC4_TESTS)
>> endif
>>
>> +if HAVE_LIBCAP
>> +TESTS_progs += \
>> + gem_ctx_param \
>> + $(NULL)
>> +endif
>
> CI doesn't have libcap-dev so this nerfed the tests.
> Only one subtest requires LIBCAP...
>
>> +#define NICE (0x1 << 4)
>> #define ROOT (0x1 << 3)
>> #define NEW_CTX (0x1 << 2)
>> #define VALID_PRIO (0x1 << 1)
>> #define OVERFLOW_PRIO (0x1 << 0)
>
> Hmm, this is opposite to the usual ordering :)
>>
>> -#define IS_ROOT(flags) (flags & ROOT)
>> +#define IS_ROOT_AND_NICE(flags) ((flags & ROOT) && (flags & NICE))
>
> Nah, you meant IS_ROOT_OR_NICE in most places.
Or even just IS_NICE if I filter flags with NICE and !ROOT when creating
sub-tests.
>
>> static int is_priority_valid(int64_t value, unsigned flags)
>> {
>> - if (IS_ROOT(flags)) {
>> + if (IS_ROOT_AND_NICE(flags)) {
>> if ((value - I915_CONTEXT_MIN_USER_PRIORITY) <= PRIO_RANGE &&
>> (value - I915_CONTEXT_MIN_USER_PRIORITY) >= 0)
>> return 0;
>> @@ -67,7 +69,7 @@ get_prio_values_valid(int64_t **prio_values, unsigned *size, unsigned flags)
>> const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
>> int64_t *values;
>>
>> - *size = (IS_ROOT(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
>> + *size = (IS_ROOT_AND_NICE(flags) ? PRIO_RANGE : USER_PRIO_RANGE) + 1;
>> values = (int64_t*) calloc(*size, sizeof(int64_t));
>> igt_assert(values);
>>
>> @@ -84,7 +86,7 @@ get_prio_values_invalid(int64_t **prio_values, unsigned *size, unsigned flags)
>> const int64_t overflow = (flags & OVERFLOW_PRIO) ? (int64_t)1 << 32 : 0;
>> int64_t *values;
>>
>> - if (IS_ROOT(flags)) {
>> + if (IS_ROOT_AND_NICE(flags)) {
>> int64_t test_values[] = { /* Test space too big pick significant values */
>> INT_MIN,
>> I915_CONTEXT_MIN_USER_PRIORITY - 1,
>> @@ -119,6 +121,25 @@ get_prio_values(int64_t **prio_values, unsigned *size, unsigned flags)
>> igt_permute_array(*prio_values, *size, igt_exchange_int64);
>> }
>>
>> +static void lower_sys_nice(void)
>> +{
>
> #if HAVE_LIBCAP
>
>> + cap_t caps;
>> + cap_value_t cap_list = CAP_SYS_NICE;
>> + pid_t pid = getpid();
>> + cap_flag_value_t cap_val;
>> +
>> + caps = cap_get_pid(pid);
>> + igt_require(caps);
>> +
>> + cap_get_flag(caps, cap_list, CAP_EFFECTIVE, &cap_val);
>> + if (cap_val == CAP_CLEAR)
>> + return; /* CAP_SYS_NICE already unset */
>> +
>> + igt_assert(cap_set_flag(caps, CAP_EFFECTIVE, 1, &cap_list, CAP_CLEAR) == 0);
>> + igt_assert(cap_set_proc(caps) == 0);
>> + cap_free(caps);
>
> #else
> return false;
> #endif
>
>> +}
>> +
>> static void
>> set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
>> {
>> @@ -140,6 +161,11 @@ set_priority(int fd, struct drm_i915_gem_context_param arg, unsigned flags)
>> igt_drop_root();
>> }
>>
>> + if (!(flags & NICE)) {
>> + igt_debug("Dropping SYS_NICE capability\n");
>> + lower_sys_nice();
>
> Rewrite as igt_require(drop_sys_nice());
>
>> + }
>> +
>> gem_context_get_param(fd, &arg);
>> old_value = arg.value;
>>
>> @@ -312,9 +338,13 @@ igt_main
>> }
>>
>> for (unsigned flags = 0;
>> - flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
>> + flags <= (NICE | ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
>> flags++) {
>> - igt_subtest_f("set-priority%s%s%s%s",
>> + if (!(flags & NICE) && !(flags & ROOT))
>> + continue; /* Needs to be rot to set properties */
>
> Nope, just use igt_require as above.
I didn't want any "*-not-nice-user*" subtests to appear in the list at
all, with igt_require they would just skip but still be there right?
Thanks,
Antonio
>
>> +
>> + igt_subtest_f("set-priority%s%s%s%s%s",
>> + (flags & NICE) ? "" : "-not-nice",
>> (flags & ROOT) ? "-root" : "-user",
>> (flags & NEW_CTX) ? "-new-ctx" : "-default-ctx",
>> (flags & VALID_PRIO) ? "" : "-invalid",
>> --
>> 2.14.2
>>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-01-31 0:47 ` Antonio Argenziano
@ 2018-01-31 8:01 ` Daniel Vetter
2018-02-02 22:24 ` Antonio Argenziano
0 siblings, 1 reply; 16+ messages in thread
From: Daniel Vetter @ 2018-01-31 8:01 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
On Tue, Jan 30, 2018 at 04:47:57PM -0800, Antonio Argenziano wrote:
> On 25/01/18 03:37, Chris Wilson wrote:
> > Quoting Antonio Argenziano (2018-01-25 01:00:03)
> > > + }
> > > +
> > > gem_context_get_param(fd, &arg);
> > > old_value = arg.value;
> > > @@ -312,9 +338,13 @@ igt_main
> > > }
> > > for (unsigned flags = 0;
> > > - flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
> > > + flags <= (NICE | ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
> > > flags++) {
> > > - igt_subtest_f("set-priority%s%s%s%s",
> > > + if (!(flags & NICE) && !(flags & ROOT))
> > > + continue; /* Needs to be rot to set properties */
> >
> > Nope, just use igt_require as above.
>
> I didn't want any "*-not-nice-user*" subtests to appear in the list at all,
> with igt_require they would just skip but still be there right?
subtest lists shouldn't be dynamic, it confuses CI infrastructure badly.
Hence why igt_require/igt_skip result in a special subtest result and will
not supress the subtest outright.
I know that vpg is struggling with heaps of skipped tests in their
reporting, but as soon as you do cross-platform/kernel/OS testing, it's
the only reasonable way to handle things.
So yeah, this needs to be an igt_require, and probably moved into the
subtest stanza (or wrapped with an igt_subtest_group depending upon the
overall test logic).
Aside: The igt intro docs should explain this, patch would be great if
it's unclear/missing.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-01-31 8:01 ` Daniel Vetter
@ 2018-02-02 22:24 ` Antonio Argenziano
2018-02-02 22:33 ` Chris Wilson
0 siblings, 1 reply; 16+ messages in thread
From: Antonio Argenziano @ 2018-02-02 22:24 UTC (permalink / raw)
To: Daniel Vetter; +Cc: igt-dev
On 31/01/18 00:01, Daniel Vetter wrote:
> On Tue, Jan 30, 2018 at 04:47:57PM -0800, Antonio Argenziano wrote:
>> On 25/01/18 03:37, Chris Wilson wrote:
>>> Quoting Antonio Argenziano (2018-01-25 01:00:03)
>>>> + }
>>>> +
>>>> gem_context_get_param(fd, &arg);
>>>> old_value = arg.value;
>>>> @@ -312,9 +338,13 @@ igt_main
>>>> }
>>>> for (unsigned flags = 0;
>>>> - flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
>>>> + flags <= (NICE | ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
>>>> flags++) {
>>>> - igt_subtest_f("set-priority%s%s%s%s",
>>>> + if (!(flags & NICE) && !(flags & ROOT))
>>>> + continue; /* Needs to be rot to set properties */
>>>
>>> Nope, just use igt_require as above.
>>
>> I didn't want any "*-not-nice-user*" subtests to appear in the list at all,
>> with igt_require they would just skip but still be there right?
>
> subtest lists shouldn't be dynamic, it confuses CI infrastructure badly.
> Hence why igt_require/igt_skip result in a special subtest result and will
> not supress the subtest outright.
In this case the combination I am trying to suppress is actually invalid
for all platforms/kernels that is why I wanted to avoid skipping as it
would hint that the test can actually run if some conditions are met
which is not the case here. That is why I was confused about the first
suggestion (which I might be completely misinterpreting). I'll send the
new revision so we can continue the discussion over the new code.
>
> I know that vpg is struggling with heaps of skipped tests in their
(whispers) I actually agree with running everything and letting the test
skip when not applicable ;).
Thanks,
Antonio
> reporting, but as soon as you do cross-platform/kernel/OS testing, it's
> the only reasonable way to handle things.
>
> So yeah, this needs to be an igt_require, and probably moved into the
> subtest stanza (or wrapped with an igt_subtest_group depending upon the
> overall test logic).
>
>
> Aside: The igt intro docs should explain this, patch would be great if
> it's unclear/missing.
> -Daniel
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-02-02 22:24 ` Antonio Argenziano
@ 2018-02-02 22:33 ` Chris Wilson
0 siblings, 0 replies; 16+ messages in thread
From: Chris Wilson @ 2018-02-02 22:33 UTC (permalink / raw)
To: Antonio Argenziano, Daniel Vetter; +Cc: igt-dev
Quoting Antonio Argenziano (2018-02-02 22:24:44)
>
>
> On 31/01/18 00:01, Daniel Vetter wrote:
> > On Tue, Jan 30, 2018 at 04:47:57PM -0800, Antonio Argenziano wrote:
> >> On 25/01/18 03:37, Chris Wilson wrote:
> >>> Quoting Antonio Argenziano (2018-01-25 01:00:03)
> >>>> + }
> >>>> +
> >>>> gem_context_get_param(fd, &arg);
> >>>> old_value = arg.value;
> >>>> @@ -312,9 +338,13 @@ igt_main
> >>>> }
> >>>> for (unsigned flags = 0;
> >>>> - flags <= (ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
> >>>> + flags <= (NICE | ROOT | NEW_CTX | VALID_PRIO | OVERFLOW_PRIO);
> >>>> flags++) {
> >>>> - igt_subtest_f("set-priority%s%s%s%s",
> >>>> + if (!(flags & NICE) && !(flags & ROOT))
> >>>> + continue; /* Needs to be rot to set properties */
> >>>
> >>> Nope, just use igt_require as above.
> >>
> >> I didn't want any "*-not-nice-user*" subtests to appear in the list at all,
> >> with igt_require they would just skip but still be there right?
> >
> > subtest lists shouldn't be dynamic, it confuses CI infrastructure badly.
> > Hence why igt_require/igt_skip result in a special subtest result and will
> > not supress the subtest outright.
>
> In this case the combination I am trying to suppress is actually invalid
> for all platforms/kernels that is why I wanted to avoid skipping as it
> would hint that the test can actually run if some conditions are met
> which is not the case here. That is why I was confused about the first
> suggestion (which I might be completely misinterpreting). I'll send the
> new revision so we can continue the discussion over the new code.
Then I'm missing something as those tests should still work for the
user, just the valid range is different. (Still vital to probe overflows
against the restricted range etc.) I think if you call them USER, NICE
it's clearer (as the first drops-all-caps, the second drops-all-caps-but-nice).
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users Antonio Argenziano
2018-01-25 11:37 ` Chris Wilson
@ 2018-02-28 14:10 ` Arkadiusz Hiler
2018-02-28 14:15 ` Chris Wilson
1 sibling, 1 reply; 16+ messages in thread
From: Arkadiusz Hiler @ 2018-02-28 14:10 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
On Wed, Jan 24, 2018 at 05:00:03PM -0800, Antonio Argenziano wrote:
> Adds tests for !SYS_NICE users trying to change the priority level of a
> context using the provided IOCTL interface.
>
> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Winiarski <michal.winiarski@intel.com>
Hey, what's up with this patch? Rest of the series was already merged
through inclusion in other series (AFAIUI). Are you going to do a
followup or can I mark it as not applicable?
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users
2018-02-28 14:10 ` Arkadiusz Hiler
@ 2018-02-28 14:15 ` Chris Wilson
0 siblings, 0 replies; 16+ messages in thread
From: Chris Wilson @ 2018-02-28 14:15 UTC (permalink / raw)
To: Arkadiusz Hiler, Antonio Argenziano; +Cc: igt-dev
Quoting Arkadiusz Hiler (2018-02-28 14:10:14)
> On Wed, Jan 24, 2018 at 05:00:03PM -0800, Antonio Argenziano wrote:
> > Adds tests for !SYS_NICE users trying to change the priority level of a
> > context using the provided IOCTL interface.
> >
> > Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Michal Winiarski <michal.winiarski@intel.com>
>
> Hey, what's up with this patch? Rest of the series was already merged
> through inclusion in other series (AFAIUI). Are you going to do a
> followup or can I mark it as not applicable?
It's a good test that just needed a bit more work, to sort out the
libcap dependency problem and cleaning up the (root, nice, user) test
modes.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2018-02-28 14:15 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-25 1:00 [igt-dev] [PATCH i-g-t v4 1/3] lib/igt_aux: Add function to swap int64 in array Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 2/3] tests/gem_ctx_param: Update invalid param Antonio Argenziano
2018-01-25 1:00 ` [igt-dev] [PATCH i-g-t v4 3/3] tests/gem_ctx_param: Add set_priority tests for non SYS_NICE users Antonio Argenziano
2018-01-25 11:37 ` Chris Wilson
2018-01-31 0:47 ` Antonio Argenziano
2018-01-31 8:01 ` Daniel Vetter
2018-02-02 22:24 ` Antonio Argenziano
2018-02-02 22:33 ` Chris Wilson
2018-02-28 14:10 ` Arkadiusz Hiler
2018-02-28 14:15 ` Chris Wilson
2018-01-25 1:18 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/3] lib/igt_aux: Add function to swap int64 in array Patchwork
2018-01-25 2:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-01-25 11:21 ` [igt-dev] [PATCH i-g-t v4 1/3] " Ville Syrjälä
2018-01-25 11:32 ` Chris Wilson
2018-01-25 11:35 ` Jani Nikula
2018-01-26 16:50 ` Antonio Argenziano
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.