[Intel-gfx] [PATCH i-g-t 1/2] igt/gem_fd_exhaustion: Actually test error handling on fd exhaustion

Chris Wilson chris at chris-wilson.co.uk
Tue Feb 27 14:41:50 UTC 2018


Quoting Karol Krol (2018-02-27 14:30:43)
> Long time ago, there was an issue with driver crashing due to lack of
> error handling on struct file creation (gem_create()). We're unable to hit
> this scenario, because dup() does not creat flip. Let's replace dup() with
> open() and assert that error is returned on exhaustion.
> 
> Signed-off-by: Karol Krol <karol.krol at intel.com>
> ---
>  tests/gem_fd_exhaustion.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/gem_fd_exhaustion.c b/tests/gem_fd_exhaustion.c
> index 0969f9c6..6750444e 100644
> --- a/tests/gem_fd_exhaustion.c
> +++ b/tests/gem_fd_exhaustion.c
> @@ -65,7 +65,7 @@ igt_simple_main
>                 igt_drop_root();
>  
>                 for (int i = 0; ; i++) {
> -                       int leak = dup(fd);
> +                       int leak = open("/dev/null", O_RDONLY);
>                         uint32_t handle;
>  
>                         if (__gem_create(fd, 4096, &handle) == 0)
> @@ -73,6 +73,8 @@ igt_simple_main
>  
>                         if (leak < 0) {
>                                 igt_info("fd exhaustion after %i rounds.\n", i);
> +                               igt_assert(__gem_create(fd, 4096,
> +                                                       &handle) == -ENFILE);

No. It can fail for a variety of reasons (ENOMEM is an easy one), so you
cannot mandate it always fails with ENFILE.
-Chris


More information about the Intel-gfx mailing list