* [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere
@ 2019-02-13 18:33 Daniel Vetter
2019-02-13 20:36 ` Daniel Vetter
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-13 18:33 UTC (permalink / raw)
To: IGT development; +Cc: Daniel Vetter, Emil Velikov
We're creating our own namespace and then create a copy of the chardev
that anyone can access before dropping root. Should hopefully work on
any system.
This way we're also guaranteed to open the right device again.
Cc: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
tests/core_auth.c | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/tests/core_auth.c b/tests/core_auth.c
index 0b9073cb0fce..3b50a13f7171 100644
--- a/tests/core_auth.c
+++ b/tests/core_auth.c
@@ -36,6 +36,7 @@
#include <fcntl.h>
#include <inttypes.h>
#include <errno.h>
+#include <sched.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/time.h>
@@ -243,17 +244,24 @@ static void test_unauth_vs_render(int master)
{
int slave;
uint32_t handle;
+ struct stat statbuf;
+ bool has_render;
- /*
- * FIXME: when drm_open_driver() fails to open() a node (insufficient
- * permissions or otherwise, it will igt_skip.
- * As of today, igt_skip and igt_fork do not work together.
- */
- slave = __drm_open_driver(DRIVER_ANY);
- /*
- * FIXME: relate to the master fd passed with the above open and fix
- * all of IGT.
- */
+ /* need to check for render nodes before we wreak the filesystem */
+ has_render = has_render_node(master);
+
+ /* create a card node matching master which (only) we can access as
+ * non-root */
+ do_or_die(fstat(master, &statbuf));
+ do_or_die(unshare(CLONE_NEWNS));
+ igt_system("mount --make-rprivate /");
+ igt_system("mount -t tmpfs none /dev/dri");
+ umask(0);
+ do_or_die(mknod("/dev/dri/card", S_IFCHR | 0777, statbuf.st_rdev));
+
+ igt_drop_root();
+
+ slave = open("/dev/dri/card", O_RDWR);
igt_assert(slave >= 0);
@@ -276,7 +284,7 @@ static void test_unauth_vs_render(int master)
* Note: We are _not_ interested in the FD2HANDLE specific errno,
* yet the EBADF check is added on the explicit request by danvet.
*/
- if (has_render_node(slave))
+ if (has_render)
igt_assert(errno == EBADF);
else
igt_assert(errno == EACCES);
@@ -330,10 +338,8 @@ igt_main
igt_subtest("unauth-vs-render") {
check_auth_sanity(master);
- igt_fork(child, 1) {
- igt_drop_root();
+ igt_fork(child, 1)
test_unauth_vs_render(master);
- }
igt_waitchildren();
}
}
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 9+ messages in thread* [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere 2019-02-13 18:33 [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Daniel Vetter @ 2019-02-13 20:36 ` Daniel Vetter 2019-02-14 13:52 ` Emil Velikov via igt-dev 2019-02-15 9:51 ` Chris Wilson 2019-02-14 9:35 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/core_auth: mount namespace magic to make the test work everywhere (rev2) Patchwork ` (2 subsequent siblings) 3 siblings, 2 replies; 9+ messages in thread From: Daniel Vetter @ 2019-02-13 20:36 UTC (permalink / raw) To: IGT development; +Cc: Daniel Vetter, Emil Velikov We're creating our own namespace and then create a copy of the chardev that anyone can access before dropping root. Should hopefully work on any system. This way we're also guaranteed to open the right device again. v2: mount(2) instead of mount(3). Cc: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- tests/core_auth.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/tests/core_auth.c b/tests/core_auth.c index 0b9073cb0fce..bc2754ec30af 100644 --- a/tests/core_auth.c +++ b/tests/core_auth.c @@ -36,6 +36,8 @@ #include <fcntl.h> #include <inttypes.h> #include <errno.h> +#include <sched.h> +#include <sys/mount.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <sys/time.h> @@ -243,17 +245,24 @@ static void test_unauth_vs_render(int master) { int slave; uint32_t handle; + struct stat statbuf; + bool has_render; - /* - * FIXME: when drm_open_driver() fails to open() a node (insufficient - * permissions or otherwise, it will igt_skip. - * As of today, igt_skip and igt_fork do not work together. - */ - slave = __drm_open_driver(DRIVER_ANY); - /* - * FIXME: relate to the master fd passed with the above open and fix - * all of IGT. - */ + /* need to check for render nodes before we wreak the filesystem */ + has_render = has_render_node(master); + + /* create a card node matching master which (only) we can access as + * non-root */ + do_or_die(fstat(master, &statbuf)); + do_or_die(unshare(CLONE_NEWNS)); + do_or_die(mount(NULL, "/", NULL, MS_PRIVATE | MS_REC, NULL)); + do_or_die(mount("none", "/dev/dri", "tmpfs", 0, NULL)); + umask(0); + do_or_die(mknod("/dev/dri/card", S_IFCHR | 0777, statbuf.st_rdev)); + + igt_drop_root(); + + slave = open("/dev/dri/card", O_RDWR); igt_assert(slave >= 0); @@ -276,7 +285,7 @@ static void test_unauth_vs_render(int master) * Note: We are _not_ interested in the FD2HANDLE specific errno, * yet the EBADF check is added on the explicit request by danvet. */ - if (has_render_node(slave)) + if (has_render) igt_assert(errno == EBADF); else igt_assert(errno == EACCES); @@ -330,10 +339,8 @@ igt_main igt_subtest("unauth-vs-render") { check_auth_sanity(master); - igt_fork(child, 1) { - igt_drop_root(); + igt_fork(child, 1) test_unauth_vs_render(master); - } igt_waitchildren(); } } -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere 2019-02-13 20:36 ` Daniel Vetter @ 2019-02-14 13:52 ` Emil Velikov via igt-dev 2019-02-15 9:51 ` Chris Wilson 1 sibling, 0 replies; 9+ messages in thread From: Emil Velikov via igt-dev @ 2019-02-14 13:52 UTC (permalink / raw) To: Daniel Vetter; +Cc: IGT development, Daniel Vetter On 2019/02/13, Daniel Vetter wrote: > We're creating our own namespace and then create a copy of the chardev > that anyone can access before dropping root. Should hopefully work on > any system. > > This way we're also guaranteed to open the right device again. > > v2: mount(2) instead of mount(3). > It's an improvement over the current test, so considering it works as advertised - ship it. Sadly I'm not too familiar to provide a meaningful review. Thanks Emil _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere 2019-02-13 20:36 ` Daniel Vetter 2019-02-14 13:52 ` Emil Velikov via igt-dev @ 2019-02-15 9:51 ` Chris Wilson 2019-02-15 10:16 ` Daniel Vetter 1 sibling, 1 reply; 9+ messages in thread From: Chris Wilson @ 2019-02-15 9:51 UTC (permalink / raw) To: Daniel Vetter, IGT development; +Cc: Daniel Vetter, Emil Velikov Quoting Daniel Vetter (2019-02-13 20:36:11) > We're creating our own namespace and then create a copy of the chardev > that anyone can access before dropping root. Should hopefully work on > any system. > > This way we're also guaranteed to open the right device again. > > v2: mount(2) instead of mount(3). > > Cc: Emil Velikov <emil.velikov@collabora.com> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > tests/core_auth.c | 35 +++++++++++++++++++++-------------- > 1 file changed, 21 insertions(+), 14 deletions(-) > > diff --git a/tests/core_auth.c b/tests/core_auth.c > index 0b9073cb0fce..bc2754ec30af 100644 > --- a/tests/core_auth.c > +++ b/tests/core_auth.c > @@ -36,6 +36,8 @@ > #include <fcntl.h> > #include <inttypes.h> > #include <errno.h> > +#include <sched.h> > +#include <sys/mount.h> > #include <sys/stat.h> > #include <sys/ioctl.h> > #include <sys/time.h> > @@ -243,17 +245,24 @@ static void test_unauth_vs_render(int master) > { > int slave; > uint32_t handle; > + struct stat statbuf; > + bool has_render; > > - /* > - * FIXME: when drm_open_driver() fails to open() a node (insufficient > - * permissions or otherwise, it will igt_skip. > - * As of today, igt_skip and igt_fork do not work together. > - */ > - slave = __drm_open_driver(DRIVER_ANY); > - /* > - * FIXME: relate to the master fd passed with the above open and fix > - * all of IGT. > - */ > + /* need to check for render nodes before we wreak the filesystem */ > + has_render = has_render_node(master); > + > + /* create a card node matching master which (only) we can access as > + * non-root */ > + do_or_die(fstat(master, &statbuf)); > + do_or_die(unshare(CLONE_NEWNS)); New mounts will occur in our private namespace, invisible to the rest of the system. > + do_or_die(mount(NULL, "/", NULL, MS_PRIVATE | MS_REC, NULL)); Make future modifications to / and beyond private to our namespace. > + do_or_die(mount("none", "/dev/dri", "tmpfs", 0, NULL)); Replace "/dev/dri" with an empty filesystem. > + umask(0); > + do_or_die(mknod("/dev/dri/card", S_IFCHR | 0777, statbuf.st_rdev)); Execute? What are you planning next? ;) And make exactly one entry in that new fs, a device node matching the original. > + > + igt_drop_root(); > + > + slave = open("/dev/dri/card", O_RDWR); And the unusual name doesn't matter because we open it directly :) Since master is still open, this will be effectively a fresh open and a slave to exactly the same device node as master opened. Looks fancy, but why didn't we just do a gem_reopen_driver(), i.e. open(/proc/self/fd/$master)? Anyway, I like the private /dev/dri idea and I think it will come in very useful in cases where we need to check a pristine system. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere 2019-02-15 9:51 ` Chris Wilson @ 2019-02-15 10:16 ` Daniel Vetter 0 siblings, 0 replies; 9+ messages in thread From: Daniel Vetter @ 2019-02-15 10:16 UTC (permalink / raw) To: Chris Wilson; +Cc: IGT development, Emil Velikov, Daniel Vetter On Fri, Feb 15, 2019 at 09:51:35AM +0000, Chris Wilson wrote: > Quoting Daniel Vetter (2019-02-13 20:36:11) > > We're creating our own namespace and then create a copy of the chardev > > that anyone can access before dropping root. Should hopefully work on > > any system. > > > > This way we're also guaranteed to open the right device again. > > > > v2: mount(2) instead of mount(3). > > > > Cc: Emil Velikov <emil.velikov@collabora.com> > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > > --- > > tests/core_auth.c | 35 +++++++++++++++++++++-------------- > > 1 file changed, 21 insertions(+), 14 deletions(-) > > > > diff --git a/tests/core_auth.c b/tests/core_auth.c > > index 0b9073cb0fce..bc2754ec30af 100644 > > --- a/tests/core_auth.c > > +++ b/tests/core_auth.c > > @@ -36,6 +36,8 @@ > > #include <fcntl.h> > > #include <inttypes.h> > > #include <errno.h> > > +#include <sched.h> > > +#include <sys/mount.h> > > #include <sys/stat.h> > > #include <sys/ioctl.h> > > #include <sys/time.h> > > @@ -243,17 +245,24 @@ static void test_unauth_vs_render(int master) > > { > > int slave; > > uint32_t handle; > > + struct stat statbuf; > > + bool has_render; > > > > - /* > > - * FIXME: when drm_open_driver() fails to open() a node (insufficient > > - * permissions or otherwise, it will igt_skip. > > - * As of today, igt_skip and igt_fork do not work together. > > - */ > > - slave = __drm_open_driver(DRIVER_ANY); > > - /* > > - * FIXME: relate to the master fd passed with the above open and fix > > - * all of IGT. > > - */ > > + /* need to check for render nodes before we wreak the filesystem */ > > + has_render = has_render_node(master); > > + > > + /* create a card node matching master which (only) we can access as > > + * non-root */ > > + do_or_die(fstat(master, &statbuf)); > > + do_or_die(unshare(CLONE_NEWNS)); > > New mounts will occur in our private namespace, invisible to the rest of > the system. > > > + do_or_die(mount(NULL, "/", NULL, MS_PRIVATE | MS_REC, NULL)); > > Make future modifications to / and beyond private to our namespace. > > > + do_or_die(mount("none", "/dev/dri", "tmpfs", 0, NULL)); > > Replace "/dev/dri" with an empty filesystem. > > > + umask(0); > > + do_or_die(mknod("/dev/dri/card", S_IFCHR | 0777, statbuf.st_rdev)); > > Execute? What are you planning next? ;) More "set all the bits" kind of programming. I'll change to 0666. > And make exactly one entry in that new fs, a device node matching the > original. > > > + > > + igt_drop_root(); > > + > > + slave = open("/dev/dri/card", O_RDWR); > > And the unusual name doesn't matter because we open it directly :) > > Since master is still open, this will be effectively a fresh open and a > slave to exactly the same device node as master opened. > > Looks fancy, but why didn't we just do a gem_reopen_driver(), i.e. > open(/proc/self/fd/$master)? I thought this would amount to a dup(), but looking at kernel code it's really just a normal symbolic link. That still runs into the same permission problem as drm_open_any(). What would work instead is dropping CAP_SYS_ADMIN (we only need CAP_FOWNER to dodge the file permission check). But I think fully dropping the root is the more genuine testcase and less tied to implementation details of what exactly we check and when. > Anyway, I like the private /dev/dri idea and I think it will come in > very useful in cases where we need to check a pristine system. Yeah, I think this might have uses elsewhere. For a library version we probably want to use overlayfs. But that means mounting a tmpfs somewhere else first (in a $tmpfile directory), because overlayfs needs some scratch space. But then you could freely change files/permissions/whatever, anywhere. Soemthing like igt_private_mountspace(); /* unshare + mount(MS_PRIVATE) */ igt_private_directory("/dev/dri"); /* drops an overlayfs on /dev/dri */ chmod(); /* or whatever else you feel like */ But felt like overkill for just this one here. > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Thanks for your review. -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] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for lib/core_auth: mount namespace magic to make the test work everywhere (rev2) 2019-02-13 18:33 [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Daniel Vetter 2019-02-13 20:36 ` Daniel Vetter @ 2019-02-14 9:35 ` Patchwork 2019-02-14 12:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-02-14 12:26 ` [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Chris Wilson 3 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2019-02-14 9:35 UTC (permalink / raw) To: igt-dev == Series Details == Series: lib/core_auth: mount namespace magic to make the test work everywhere (rev2) URL : https://patchwork.freedesktop.org/series/56627/ State : success == Summary == CI Bug Log - changes from CI_DRM_5599 -> IGTPW_2399 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/56627/revisions/2/mbox/ Known issues ------------ Here are the changes found in IGTPW_2399 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@amdgpu/amd_basic@userptr: - fi-kbl-8809g: PASS -> DMESG-WARN [fdo#108965] * igt@kms_busy@basic-flip-b: - fi-gdg-551: PASS -> FAIL [fdo#103182] * igt@kms_chamelium@common-hpd-after-suspend: - fi-kbl-7500u: NOTRUN -> DMESG-WARN [fdo#102505] / [fdo#103558] / [fdo#105079] / [fdo#105602] * igt@kms_flip@basic-flip-vs-modeset: - fi-skl-6700hq: PASS -> DMESG-WARN [fdo#105998] +1 * igt@kms_psr@sprite_plane_onoff: - fi-skl-6700hq: PASS -> FAIL [fdo#107383] +3 * igt@pm_rpm@basic-rte: - fi-bsw-kefka: NOTRUN -> FAIL [fdo#108800] #### Possible fixes #### * igt@i915_module_load@reload: - fi-blb-e6850: INCOMPLETE [fdo#107718] -> PASS * igt@i915_selftest@live_execlists: - fi-apl-guc: INCOMPLETE [fdo#103927] -> PASS * igt@i915_selftest@live_workarounds: - {fi-icl-u2}: INCOMPLETE [fdo#109626] -> PASS * igt@kms_chamelium@dp-crc-fast: - fi-kbl-7500u: DMESG-FAIL [fdo#109627] -> PASS * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +2 {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505 [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#105079]: https://bugs.freedesktop.org/show_bug.cgi?id=105079 [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602 [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#107383]: https://bugs.freedesktop.org/show_bug.cgi?id=107383 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569 [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800 [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109294]: https://bugs.freedesktop.org/show_bug.cgi?id=109294 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527 [fdo#109528]: https://bugs.freedesktop.org/show_bug.cgi?id=109528 [fdo#109530]: https://bugs.freedesktop.org/show_bug.cgi?id=109530 [fdo#109626]: https://bugs.freedesktop.org/show_bug.cgi?id=109626 [fdo#109627]: https://bugs.freedesktop.org/show_bug.cgi?id=109627 Participating hosts (43 -> 43) ------------------------------ Additional (7): fi-skl-6260u fi-whl-u fi-ivb-3770 fi-icl-y fi-kbl-7560u fi-bsw-kefka fi-snb-2600 Missing (7): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ilk-650 fi-pnv-d510 fi-bdw-samus Build changes ------------- * IGT: IGT_4824 -> IGTPW_2399 CI_DRM_5599: 39119c9b385742d49446c25d6902864a60eda6b6 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2399: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2399/ IGT_4824: e55d439a9ba744227fb4c9d727338276b78871d4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2399/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for lib/core_auth: mount namespace magic to make the test work everywhere (rev2) 2019-02-13 18:33 [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Daniel Vetter 2019-02-13 20:36 ` Daniel Vetter 2019-02-14 9:35 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/core_auth: mount namespace magic to make the test work everywhere (rev2) Patchwork @ 2019-02-14 12:10 ` Patchwork 2019-02-14 12:26 ` [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Chris Wilson 3 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2019-02-14 12:10 UTC (permalink / raw) To: igt-dev == Series Details == Series: lib/core_auth: mount namespace magic to make the test work everywhere (rev2) URL : https://patchwork.freedesktop.org/series/56627/ State : success == Summary == CI Bug Log - changes from CI_DRM_5599_full -> IGTPW_2399_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/56627/revisions/2/mbox/ New tests --------- New tests have been introduced between CI_DRM_5599_full and IGTPW_2399_full: ### New IGT tests (2) ### * igt@kms_psr2_su@frontbuffer: - Statuses : 5 skip(s) - Exec time: [0.0] s * igt@kms_psr2_su@page_flip: - Statuses : 5 skip(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in IGTPW_2399_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_busy@extended-modeset-hang-newfb-render-b: - shard-glk: NOTRUN -> DMESG-WARN [fdo#107956] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b: - shard-glk: PASS -> DMESG-WARN [fdo#107956] * igt@kms_ccs@pipe-a-crc-sprite-planes-basic: - shard-glk: PASS -> FAIL [fdo#108145] +1 * igt@kms_cursor_crc@cursor-128x42-sliding: - shard-apl: PASS -> FAIL [fdo#103232] +3 * igt@kms_cursor_crc@cursor-256x256-onscreen: - shard-kbl: PASS -> FAIL [fdo#103232] +1 * igt@kms_cursor_crc@cursor-256x256-suspend: - shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232] * igt@kms_cursor_crc@cursor-alpha-opaque: - shard-apl: PASS -> FAIL [fdo#109350] * igt@kms_cursor_crc@cursor-size-change: - shard-glk: NOTRUN -> FAIL [fdo#103232] +1 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu: - shard-apl: PASS -> FAIL [fdo#103167] * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render: - shard-apl: NOTRUN -> FAIL [fdo#103167] * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move: - shard-glk: PASS -> FAIL [fdo#103167] +4 * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping: - shard-glk: PASS -> FAIL [fdo#108948] * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes: - shard-kbl: PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] * igt@kms_plane_alpha_blend@pipe-a-alpha-transparant-fb: - shard-apl: NOTRUN -> FAIL [fdo#108145] - shard-kbl: NOTRUN -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-glk: NOTRUN -> FAIL [fdo#108145] +1 * igt@kms_plane_multiple@atomic-pipe-b-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +2 * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: PASS -> FAIL [fdo#103166] +3 - shard-kbl: NOTRUN -> FAIL [fdo#103166] * {igt@kms_psr2_su@frontbuffer} (NEW): - shard-glk: NOTRUN -> {SKIP} [fdo#109271] +1 - shard-snb: NOTRUN -> {SKIP} [fdo#109271] +1 - shard-apl: NOTRUN -> {SKIP} [fdo#109271] +1 * {igt@kms_psr2_su@page_flip} (NEW): - shard-kbl: NOTRUN -> {SKIP} [fdo#109271] +1 - shard-hsw: NOTRUN -> {SKIP} [fdo#109271] +1 * igt@kms_sysfs_edid_timing: - shard-apl: NOTRUN -> FAIL [fdo#100047] - shard-kbl: NOTRUN -> FAIL [fdo#100047] #### Possible fixes #### * igt@kms_color@pipe-a-ctm-max: - shard-apl: FAIL [fdo#108147] -> PASS * igt@kms_color@pipe-a-degamma: - shard-apl: FAIL [fdo#104782] / [fdo#108145] -> PASS - shard-kbl: FAIL [fdo#104782] / [fdo#108145] -> PASS * igt@kms_color@pipe-b-legacy-gamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_cursor_crc@cursor-256x85-sliding: - shard-apl: FAIL [fdo#103232] -> PASS +5 * igt@kms_cursor_crc@cursor-64x64-suspend: - shard-apl: FAIL [fdo#103191] / [fdo#103232] -> PASS * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: - shard-apl: FAIL [fdo#103167] -> PASS +3 - shard-glk: FAIL [fdo#103167] -> PASS +1 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: - shard-kbl: FAIL [fdo#103167] -> PASS * igt@kms_plane@pixel-format-pipe-c-planes-source-clamping: - shard-glk: FAIL [fdo#108948] -> PASS - shard-apl: INCOMPLETE [fdo#103927] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-x: - shard-apl: FAIL [fdo#103166] -> PASS +5 * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: FAIL [fdo#103166] -> PASS +1 - shard-kbl: FAIL [fdo#103166] -> PASS +2 * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom: - shard-kbl: DMESG-FAIL [fdo#105763] -> PASS * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-kbl: FAIL [fdo#109016] -> PASS #### Warnings #### * igt@i915_suspend@shrink: - shard-apl: INCOMPLETE [fdo#103927] / [fdo#106886] -> DMESG-WARN [fdo#107886] / [fdo#109244] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#100047]: https://bugs.freedesktop.org/show_bug.cgi?id=100047 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602 [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763 [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886 [fdo#107886]: https://bugs.freedesktop.org/show_bug.cgi?id=107886 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147 [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948 [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016 [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350 Participating hosts (7 -> 5) ------------------------------ Missing (2): shard-skl shard-iclb Build changes ------------- * IGT: IGT_4824 -> IGTPW_2399 * Piglit: piglit_4509 -> None CI_DRM_5599: 39119c9b385742d49446c25d6902864a60eda6b6 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2399: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2399/ IGT_4824: e55d439a9ba744227fb4c9d727338276b78871d4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2399/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere 2019-02-13 18:33 [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Daniel Vetter ` (2 preceding siblings ...) 2019-02-14 12:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2019-02-14 12:26 ` Chris Wilson 2019-02-14 15:32 ` Daniel Vetter 3 siblings, 1 reply; 9+ messages in thread From: Chris Wilson @ 2019-02-14 12:26 UTC (permalink / raw) To: Daniel Vetter, IGT development; +Cc: Daniel Vetter, Emil Velikov Quoting Daniel Vetter (2019-02-13 18:33:09) > + /* create a card node matching master which (only) we can access as > + * non-root */ > + do_or_die(fstat(master, &statbuf)); > + do_or_die(unshare(CLONE_NEWNS)); > + igt_system("mount --make-rprivate /"); > + igt_system("mount -t tmpfs none /dev/dri"); man mount(2)? I'm optimistic that translates to MS_PRIVATE. Changing the propagation type of an existing mount If mountflags includes one of MS_SHARED, MS_PRIVATE, MS_SLAVE, or MS_UNBINDABLE (all available since Linux 2.6.15), then the propagation type of an existing mount is changed. If more than one of these flags is specified, an error results. The only flags that can be used with changing the propagation type are MS_REC and MS_SILENT. Seems like it should be just that :) -Chris _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere 2019-02-14 12:26 ` [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Chris Wilson @ 2019-02-14 15:32 ` Daniel Vetter 0 siblings, 0 replies; 9+ messages in thread From: Daniel Vetter @ 2019-02-14 15:32 UTC (permalink / raw) To: Chris Wilson; +Cc: IGT development, Emil Velikov, Daniel Vetter On Thu, Feb 14, 2019 at 12:26:22PM +0000, Chris Wilson wrote: > Quoting Daniel Vetter (2019-02-13 18:33:09) > > + /* create a card node matching master which (only) we can access as > > + * non-root */ > > + do_or_die(fstat(master, &statbuf)); > > + do_or_die(unshare(CLONE_NEWNS)); > > + igt_system("mount --make-rprivate /"); > > + igt_system("mount -t tmpfs none /dev/dri"); > > man mount(2)? I'm optimistic that translates to MS_PRIVATE. > > Changing the propagation type of an existing mount > > If mountflags includes one of MS_SHARED, MS_PRIVATE, MS_SLAVE, or > MS_UNBINDABLE (all available since Linux 2.6.15), then the > propagation type of an existing mount is changed. If more than one > of these flags is specified, an error results. > > The only flags that can be used with changing the propagation type > are MS_REC and MS_SILENT. > > Seems like it should be just that :) Yeah I unlazied and changed my cmdline hackery to proper syscalls in v2. Took me a while to figure out that cmdline unshare does additional stuff when you want a new namespace. And mount(2) is not the most intuitive thing ever, but luckily mouting tmpfs is easy. -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] 9+ messages in thread
end of thread, other threads:[~2019-02-15 10:17 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-02-13 18:33 [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Daniel Vetter 2019-02-13 20:36 ` Daniel Vetter 2019-02-14 13:52 ` Emil Velikov via igt-dev 2019-02-15 9:51 ` Chris Wilson 2019-02-15 10:16 ` Daniel Vetter 2019-02-14 9:35 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/core_auth: mount namespace magic to make the test work everywhere (rev2) Patchwork 2019-02-14 12:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-02-14 12:26 ` [igt-dev] [PATCH i-g-t] lib/core_auth: mount namespace magic to make the test work everywhere Chris Wilson 2019-02-14 15:32 ` Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox