The gem_create_v2 uapi was never merged, which would have been a nice
addition to allow userspace to utilise stolen memory. Since it can only
get in the way at this point, let's just remove it.

Signed-off-by: Matthew Auld <[email protected]>
Cc: Chris Wilson <[email protected]>
---
 lib/ioctl_wrappers.c    | 70 -------------------------------
 lib/ioctl_wrappers.h    |  3 --
 tests/i915/gem_create.c | 46 +++-----------------
 tests/i915/gem_pread.c  | 93 -----------------------------------------
 tests/i915/gem_pwrite.c | 43 -------------------
 5 files changed, 5 insertions(+), 250 deletions(-)

diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 61f93bd8..3781286d 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -469,76 +469,6 @@ void gem_sync(int fd, uint32_t handle)
        errno = 0;
 }
 
-
-bool gem_create__has_stolen_support(int fd)
-{
-       int has_stolen_support;
-       struct drm_i915_getparam gp;
-       int val = -1;
-
-       memset(&gp, 0, sizeof(gp));
-       gp.param = 38; /* CREATE_VERSION */
-       gp.value = &val;
-
-       /* Do we have the extended gem_create_ioctl? */
-       ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp);
-       has_stolen_support = val >= 2;
-
-       return has_stolen_support;
-}
-
-struct local_i915_gem_create_v2 {
-       uint64_t size;
-       uint32_t handle;
-       uint32_t pad;
-#define I915_CREATE_PLACEMENT_STOLEN (1<<0)
-       uint32_t flags;
-};
-
-#define LOCAL_IOCTL_I915_GEM_CREATE       DRM_IOWR(DRM_COMMAND_BASE + 
DRM_I915_GEM_CREATE, struct local_i915_gem_create_v2)
-uint32_t __gem_create_stolen(int fd, uint64_t size)
-{
-       struct local_i915_gem_create_v2 create;
-       int ret;
-
-       memset(&create, 0, sizeof(create));
-       create.handle = 0;
-       create.size = size;
-       create.flags = I915_CREATE_PLACEMENT_STOLEN;
-       ret = igt_ioctl(fd, LOCAL_IOCTL_I915_GEM_CREATE, &create);
-
-       if (ret < 0)
-               return 0;
-
-       errno = 0;
-       return create.handle;
-}
-
-/**
- * gem_create_stolen:
- * @fd: open i915 drm file descriptor
- * @size: desired size of the buffer
- *
- * This wraps the new GEM_CREATE ioctl, which allocates a new gem buffer
- * object of @size and placement in stolen memory region.
- *
- * Returns: The file-private handle of the created buffer object
- */
-
-uint32_t gem_create_stolen(int fd, uint64_t size)
-{
-       struct local_i915_gem_create_v2 create;
-
-       memset(&create, 0, sizeof(create));
-       create.handle = 0;
-       create.size = size;
-       create.flags = I915_CREATE_PLACEMENT_STOLEN;
-       do_ioctl(fd, LOCAL_IOCTL_I915_GEM_CREATE, &create);
-       igt_assert(create.handle);
-
-       return create.handle;
-}
-
 int __gem_create(int fd, uint64_t size, uint32_t *handle)
 {
        struct drm_i915_gem_create create = {
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index 435fc813..870ac8b7 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -75,9 +75,6 @@ int __gem_set_domain(int fd, uint32_t handle, uint32_t read, 
uint32_t write);
 void gem_set_domain(int fd, uint32_t handle, uint32_t read, uint32_t write);
 int gem_wait(int fd, uint32_t handle, int64_t *timeout_ns);
 void gem_sync(int fd, uint32_t handle);
-bool gem_create__has_stolen_support(int fd);
-uint32_t __gem_create_stolen(int fd, uint64_t size);
-uint32_t gem_create_stolen(int fd, uint64_t size);
 int __gem_create(int fd, uint64_t size, uint32_t *handle);
 uint32_t gem_create(int fd, uint64_t size);
 void gem_execbuf_wr(int fd, struct drm_i915_gem_execbuffer2 *execbuf);
diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
index e376f8ae..c7444d55 100644
--- a/tests/i915/gem_create.c
+++ b/tests/i915/gem_create.c
@@ -27,11 +27,8 @@
 
 /** @file gem_create.c
  *
- * This is a test for the extended and old gem_create ioctl, that
- * includes allocation of object from stolen memory and shmem.
- *
- * The goal is to simply ensure that basics work and invalid input
- * combinations are rejected.
+ * This is a test for the gem_create ioctl. The goal is to simply ensure that
+ * basics work and invalid input combinations are rejected.
  */
 
 #include <stdlib.h>
@@ -59,42 +56,12 @@
 #include "i915/gem_mman.h"
 #include "i915_drm.h"
 
-IGT_TEST_DESCRIPTION("This is a test for the extended & old gem_create ioctl,"
-                    " that includes allocation of object from stolen memory"
-                    " and shmem.");
+IGT_TEST_DESCRIPTION("This is a test for the gem_create ioctl,"
+                    " where the goal is to simply ensure that basics work"
+                    " and invalid input combinations are rejected.");
 
-#define CLEAR(s) memset(&s, 0, sizeof(s))
 #define PAGE_SIZE 4096
 
-struct local_i915_gem_create_v2 {
-       uint64_t size;
-       uint32_t handle;
-       uint32_t pad;
-#define I915_CREATE_PLACEMENT_STOLEN (1<<0)
-       uint32_t flags;
-} create_v2;
-
-#define LOCAL_IOCTL_I915_GEM_CREATE       DRM_IOWR(DRM_COMMAND_BASE + 
DRM_I915_GEM_CREATE, struct local_i915_gem_create_v2)
-
-static void invalid_flag_test(int fd)
-{
-       int ret;
-
-       gem_require_stolen_support(fd);
-
-       create_v2.handle = 0;
-       create_v2.size = PAGE_SIZE;
-       create_v2.flags = ~I915_CREATE_PLACEMENT_STOLEN;
-       ret = drmIoctl(fd, LOCAL_IOCTL_I915_GEM_CREATE, &create_v2);
-
-       igt_assert(ret <= 0);
-
-       create_v2.flags = ~0;
-       ret = drmIoctl(fd, LOCAL_IOCTL_I915_GEM_CREATE, &create_v2);
-
-       igt_assert(ret <= 0);
-}
-
 static int create_ioctl(int fd, struct drm_i915_gem_create *create)
 {
         int err = 0;
@@ -278,9 +245,6 @@ igt_main
                fd = drm_open_driver(DRIVER_INTEL);
        }
 
-       igt_subtest("stolen-invalid-flag")
-               invalid_flag_test(fd);
-
        igt_subtest("create-invalid-size")
                invalid_size_test(fd);
 
diff --git a/tests/i915/gem_pread.c b/tests/i915/gem_pread.c
index 5b926ab0..6d12b8e9 100644
--- a/tests/i915/gem_pread.c
+++ b/tests/i915/gem_pread.c
@@ -73,7 +73,6 @@ static void pread_self(int i915)
 }
 
 #define OBJECT_SIZE 16384
-#define LARGE_OBJECT_SIZE 1024 * 1024
 #define KGRN "\x1B[32m"
 #define KRED "\x1B[31m"
 #define KNRM "\x1B[0m"
@@ -110,10 +109,7 @@ static const char *bytes_per_sec(char *buf, double v)
        return buf;
 }
 
-
 uint32_t *src, dst;
-uint32_t *dst_user, src_stolen, large_stolen;
-uint32_t *stolen_pf_user, *stolen_nopf_user;
 int fd, count;
 int object_size = 0;
 
@@ -156,8 +152,6 @@ igt_main_args("s:", NULL, help_str, opt_handler, NULL)
 
                dst = gem_create(fd, object_size);
                src = malloc(object_size);
-               src_stolen = gem_create_stolen(fd, object_size);
-               dst_user = malloc(object_size);
        }
 
        igt_subtest("bench") {
@@ -197,96 +191,9 @@ igt_main_args("s:", NULL, help_str, opt_handler, NULL)
                }
        }
 
-       igt_subtest("stolen-normal") {
-               gem_require_stolen_support(fd);
-               for (count = 1; count <= 1<<17; count <<= 1) {
-                       struct timeval start, end;
-
-                       gettimeofday(&start, NULL);
-                       do_gem_read(fd, src_stolen, dst_user, object_size, 
count);
-                       gettimeofday(&end, NULL);
-                       usecs = elapsed(&start, &end, count);
-                       bps = bytes_per_sec(buf, object_size/usecs*1e6);
-                       igt_info("Time to pread %d bytes x %6d: %7.3fµs, %s\n",
-                                object_size, count, usecs, bps);
-                       fflush(stdout);
-               }
-       }
-       for (c = cache; c->level != -1; c++) {
-               igt_subtest_f("stolen-%s", c->name) {
-                       gem_require_stolen_support(fd);
-                       gem_set_caching(fd, src_stolen, c->level);
-
-                       for (count = 1; count <= 1<<17; count <<= 1) {
-                               struct timeval start, end;
-
-                               gettimeofday(&start, NULL);
-                               do_gem_read(fd, src_stolen, dst_user,
-                                           object_size, count);
-                               gettimeofday(&end, NULL);
-                               usecs = elapsed(&start, &end, count);
-                               bps = bytes_per_sec(buf, object_size/usecs*1e6);
-                               igt_info("Time to stolen-%s pread %d bytes x 
%6d:      %7.3fµs, %s\n",
-                                        c->name, object_size, count, usecs, 
bps);
-                               fflush(stdout);
-                       }
-               }
-       }
-
-       /* List the time taken in pread operation for stolen objects, with
-        * and without the overhead of page fault handling on accessing the
-        * user space buffer
-        */
-       igt_subtest("pagefault-pread") {
-               gem_require_stolen_support(fd);
-               large_stolen = gem_create_stolen(fd, LARGE_OBJECT_SIZE);
-               stolen_nopf_user = (uint32_t *) mmap(NULL, LARGE_OBJECT_SIZE,
-                                               PROT_WRITE,
-                                               MAP_ANONYMOUS|MAP_PRIVATE,
-                                               -1, 0);
-               igt_assert(stolen_nopf_user);
-
-               for (count = 1; count <= 10; count ++) {
-                       struct timeval start, end;
-                       double t_elapsed = 0;
-
-                       gettimeofday(&start, NULL);
-                       do_gem_read(fd, large_stolen, stolen_nopf_user,
-                                   LARGE_OBJECT_SIZE, 1);
-                       gettimeofday(&end, NULL);
-                       t_elapsed = elapsed(&start, &end, count);
-                       bps = bytes_per_sec(buf, object_size/t_elapsed*1e6);
-                       igt_info("Pagefault-N - Time to pread %d bytes: 
%7.3fµs, %s\n",
-                                LARGE_OBJECT_SIZE, t_elapsed, bps);
-
-                       stolen_pf_user = (uint32_t *) mmap(NULL, 
LARGE_OBJECT_SIZE,
-                                                     PROT_WRITE,
-                                                     MAP_ANONYMOUS|MAP_PRIVATE,
-                                                     -1, 0);
-                       igt_assert(stolen_pf_user);
-
-                       gettimeofday(&start, NULL);
-                       do_gem_read(fd, large_stolen, stolen_pf_user,
-                                   LARGE_OBJECT_SIZE, 1);
-                       gettimeofday(&end, NULL);
-                       usecs = elapsed(&start, &end, count);
-                       bps = bytes_per_sec(buf, object_size/usecs*1e6);
-                       igt_info("Pagefault-Y - Time to pread %d bytes: 
%7.3fµs, %s%s%s\n",
-                                LARGE_OBJECT_SIZE, usecs,
-                                t_elapsed < usecs ? KGRN : KRED, bps, KNRM);
-                       fflush(stdout);
-                       munmap(stolen_pf_user, LARGE_OBJECT_SIZE);
-               }
-               munmap(stolen_nopf_user, LARGE_OBJECT_SIZE);
-               gem_close(fd, large_stolen);
-       }
-
-
        igt_fixture {
                free(src);
                gem_close(fd, dst);
-               free(dst_user);
-               gem_close(fd, src_stolen);
 
                close(fd);
        }
diff --git a/tests/i915/gem_pwrite.c b/tests/i915/gem_pwrite.c
index 20e9728b..e491263f 100644
--- a/tests/i915/gem_pwrite.c
+++ b/tests/i915/gem_pwrite.c
@@ -277,7 +277,6 @@ static void test_random(int fd)
 }
 
 uint32_t *src, dst;
-uint32_t *src_user, dst_stolen;
 int fd;
 int object_size = 0;
 
@@ -321,8 +320,6 @@ igt_main_args("s:", NULL, help_str, opt_handler, NULL)
 
                dst = gem_create(fd, object_size);
                src = malloc(object_size);
-               dst_stolen = gem_create_stolen(fd, object_size);
-               src_user = malloc(object_size);
        }
 
        igt_subtest("bench") {
@@ -362,49 +359,9 @@ igt_main_args("s:", NULL, help_str, opt_handler, NULL)
                }
        }
 
-       igt_subtest("stolen-normal") {
-               gem_require_stolen_support(fd);
-               for (count = 1; count <= 1<<17; count <<= 1) {
-                       struct timeval start, end;
-
-                       gettimeofday(&start, NULL);
-                       do_gem_write(fd, dst_stolen, src_user,
-                                    object_size, count);
-                       gettimeofday(&end, NULL);
-                       usecs = elapsed(&start, &end, count);
-                       bps = bytes_per_sec(buf, object_size/usecs*1e6);
-                       igt_info("Time to pwrite %d bytes x %6d:        
%7.3fµs, %s\n",
-                                object_size, count, usecs, bps);
-                       fflush(stdout);
-               }
-       }
-
-       for (c = cache; c->level != -1; c++) {
-               igt_subtest_f("stolen-%s", c->name) {
-                       gem_require_stolen_support(fd);
-                       gem_set_caching(fd, dst, c->level);
-                       for (count = 1; count <= 1<<17; count <<= 1) {
-                               struct timeval start, end;
-
-                               gettimeofday(&start, NULL);
-                               do_gem_write(fd, dst_stolen, src_user,
-                                            object_size, count);
-                               gettimeofday(&end, NULL);
-                               bps = bytes_per_sec(buf,
-                                                   object_size/usecs*1e6);
-                               igt_info("Time to stolen-%s pwrite %d bytes x 
%6d:     %7.3fµs, %s\n",
-                                        c->name, object_size, count,
-                                        usecs, bps);
-                               fflush(stdout);
-                       }
-               }
-       }
-
        igt_fixture {
                free(src);
                gem_close(fd, dst);
-               free(src_user);
-               gem_close(fd, dst_stolen);
        }
 
        igt_subtest_f("basic-random")
-- 
2.26.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to