All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>,
	"Petri Latvala" <petri.latvala@intel.com>,
	"Ashutosh Dixit" <ashutosh.dixit@intel.com>
Subject: [igt-dev] [PATCH i-g-t 1/7] lib/gem_submission: Add kernel exec object alignment capability
Date: Fri,  8 Oct 2021 08:54:26 +0200	[thread overview]
Message-ID: <20211008065432.15482-2-zbigniew.kempczynski@intel.com> (raw)
In-Reply-To: <20211008065432.15482-1-zbigniew.kempczynski@intel.com>

With newer gens passing non-zero alignment will be forbidden.
Add check which detects kernel supports it or not.

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
 lib/i915/gem_submission.c | 32 ++++++++++++++++++++++++++++++++
 lib/i915/gem_submission.h |  1 +
 2 files changed, 33 insertions(+)

diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
index f1af4f97c..459ee21f9 100644
--- a/lib/i915/gem_submission.c
+++ b/lib/i915/gem_submission.c
@@ -472,3 +472,35 @@ bool gem_has_relocations(int i915)
 
 	return has_relocs;
 }
+
+/**
+ * gem_allows_passing_alignment
+ * @fd: opened i915 drm file descriptor
+ *
+ * Check does i915 driver allows passing alignment in exec object to
+ * handle in kernel and adjust object offset accordingly.
+ *
+ * Returns: true if kernel supports setting offset to be aligned, otherwise
+ * false.
+ */
+bool gem_allows_passing_alignment(int fd)
+{
+	struct drm_i915_gem_exec_object2 obj = {
+		.handle = gem_create(fd, 4096),
+	};
+	struct drm_i915_gem_execbuffer2 execbuf = {
+		.buffers_ptr = to_user_pointer(&obj),
+		.buffer_count = 1,
+	};
+	bool ret;
+	const uint32_t bbe = MI_BATCH_BUFFER_END;
+
+	gem_write(fd, obj.handle, 0, &bbe, sizeof(bbe));
+	gem_execbuf(fd, &execbuf);
+
+	obj.alignment = 0x2000;
+	ret = __gem_execbuf(fd, &execbuf) == 0;
+	gem_close(fd, obj.handle);
+
+	return ret;
+}
diff --git a/lib/i915/gem_submission.h b/lib/i915/gem_submission.h
index 9b3e2a4e5..9f1ee8125 100644
--- a/lib/i915/gem_submission.h
+++ b/lib/i915/gem_submission.h
@@ -55,5 +55,6 @@ unsigned int gem_submission_measure(int i915, const intel_ctx_cfg_t *cfg,
 
 void gem_test_all_engines(int fd);
 bool gem_has_relocations(int fd);
+bool gem_allows_passing_alignment(int fd);
 
 #endif /* GEM_SUBMISSION_H */
-- 
2.26.0

  reply	other threads:[~2021-10-08  6:54 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-08  6:54 [igt-dev] [PATCH i-g-t 0/7] Prepare IGTs to allow only zero alignment Zbigniew Kempczyński
2021-10-08  6:54 ` Zbigniew Kempczyński [this message]
2021-10-13  4:47   ` [igt-dev] [PATCH i-g-t 1/7] lib/gem_submission: Add kernel exec object alignment capability Dixit, Ashutosh
2021-10-13  5:27     ` Zbigniew Kempczyński
2021-10-14  2:26       ` Dixit, Ashutosh
2021-10-14  7:14         ` Zbigniew Kempczyński
2021-10-14  7:22           ` Dixit, Ashutosh
2021-10-08  6:54 ` [igt-dev] [PATCH i-g-t 2/7] lib/intel_batchbuffer: Detect and use kernel " Zbigniew Kempczyński
2021-10-14  2:37   ` Dixit, Ashutosh
2021-10-14  7:25     ` Zbigniew Kempczyński
2021-10-14  7:22       ` Dixit, Ashutosh
2021-10-08  6:54 ` [igt-dev] [PATCH i-g-t 3/7] tests/gem_exec_alignment: Add prerequisite alignment condition Zbigniew Kempczyński
2021-10-14  4:12   ` Dixit, Ashutosh
2021-10-14  7:27     ` Zbigniew Kempczyński
2021-10-08  6:54 ` [igt-dev] [PATCH i-g-t 4/7] tests/gem_evict_alignment: Skip if kernel doesn't support passing alignment Zbigniew Kempczyński
2021-10-14  4:14   ` Dixit, Ashutosh
2021-10-08  6:54 ` [igt-dev] [PATCH i-g-t 5/7] tests/i915_pm_rpm: Fix invalid alignment Zbigniew Kempczyński
2021-10-14  4:18   ` Dixit, Ashutosh
2021-10-08  6:54 ` [igt-dev] [PATCH i-g-t 6/7] benchmarks/gem_exec_fault: Add timeout argument Zbigniew Kempczyński
2021-10-14  4:24   ` Dixit, Ashutosh
2021-10-14  7:47     ` Zbigniew Kempczyński
2021-10-14  7:30       ` Dixit, Ashutosh
2021-10-08  6:54 ` [igt-dev] [PATCH i-g-t 7/7] benchmarks/gem_exec_fault: Add softpin mode to support gens with ppgtt Zbigniew Kempczyński
2021-10-14  5:01   ` Dixit, Ashutosh
2021-10-14  5:06     ` Dixit, Ashutosh
2021-10-14  8:11     ` Zbigniew Kempczyński
2021-10-08  7:48 ` [igt-dev] ✓ Fi.CI.BAT: success for Prepare IGTs to allow only zero alignment Patchwork
2021-10-08  9:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-10-14  8:19 [igt-dev] [PATCH i-g-t 0/7] " Zbigniew Kempczyński
2021-10-14  8:19 ` [igt-dev] [PATCH i-g-t 1/7] lib/gem_submission: Add kernel exec object alignment capability Zbigniew Kempczyński

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211008065432.15482-2-zbigniew.kempczynski@intel.com \
    --to=zbigniew.kempczynski@intel.com \
    --cc=ashutosh.dixit@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=petri.latvala@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.