From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80B7610E216 for ; Thu, 9 Nov 2023 13:40:57 +0000 (UTC) From: Matthew Auld To: igt-dev@lists.freedesktop.org Date: Thu, 9 Nov 2023 13:38:29 +0000 Message-ID: <20231109133833.503891-12-matthew.auld@intel.com> In-Reply-To: <20231109133833.503891-1-matthew.auld@intel.com> References: <20231109133833.503891-1-matthew.auld@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [PATCH i-g-t v9 11/15] lib/intel_allocator: treat default_alignment as the minimum List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: If something overrides the default alignment, we should only apply the alignment if it is larger than the default_alignment. v2 (Niranjana): - Simplify slightly v3: - Also update the default-alignment testcase Signed-off-by: Matthew Auld Cc: Zbigniew Kempczyński Cc: José Roberto de Souza Cc: Pallavi Mishra Reviewed-by: Niranjana Vishwanathapura Reviewed-by: Zbigniew Kempczyński --- lib/intel_allocator.c | 4 ++-- tests/intel/api_intel_allocator.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/intel_allocator.c b/lib/intel_allocator.c index 01e025b46..341db2a50 100644 --- a/lib/intel_allocator.c +++ b/lib/intel_allocator.c @@ -584,8 +584,8 @@ static int handle_request(struct alloc_req *req, struct alloc_resp *resp) break; case REQ_ALLOC: - if (!req->alloc.alignment) - req->alloc.alignment = ial->default_alignment; + req->alloc.alignment = max(ial->default_alignment, + req->alloc.alignment); resp->response_type = RESP_ALLOC; resp->alloc.offset = ial->alloc(ial, diff --git a/tests/intel/api_intel_allocator.c b/tests/intel/api_intel_allocator.c index d19be3ce9..8e13a8808 100644 --- a/tests/intel/api_intel_allocator.c +++ b/tests/intel/api_intel_allocator.c @@ -206,7 +206,7 @@ static void reserve(int fd, uint8_t type) static void default_alignment(int fd) { struct test_obj obj[3]; - uint64_t ahnd, default_alignment = 0x4000; + uint64_t ahnd, default_alignment = SZ_4K; ahnd = intel_allocator_open_full(fd, 0, 0, 0, INTEL_ALLOCATOR_SIMPLE, ALLOC_STRATEGY_LOW_TO_HIGH, @@ -214,13 +214,13 @@ static void default_alignment(int fd) for (int i = 0; i < ARRAY_SIZE(obj); i++) { obj[i].handle = gem_handle_gen(); - obj[i].offset = intel_allocator_alloc(ahnd, obj[i].handle, 4096, - i == 2 ? 4096 : 0); + obj[i].offset = intel_allocator_alloc(ahnd, obj[i].handle, + SZ_4K, i == 2 ? 0 : SZ_16K); igt_debug("obj[%d].offset: %llx, handle: %u\n", i, (long long) obj[i].offset, obj[i].handle); } - igt_assert_eq(obj[1].offset - obj[0].offset, default_alignment); + igt_assert_eq(obj[1].offset - obj[0].offset, SZ_16K); /* obj[2] should be between obj[0] and obj[1] */ igt_assert(obj[0].offset < obj[2].offset); igt_assert(obj[2].offset < obj[1].offset); -- 2.41.0