From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3639AC02180 for ; Mon, 13 Jan 2025 19:37:39 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E6FB710E1ED; Mon, 13 Jan 2025 19:37:38 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="m2uw6eyu"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BA0E10E1ED for ; Mon, 13 Jan 2025 19:37:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1736797057; x=1768333057; h=date:message-id:from:to:cc:subject:in-reply-to: references:mime-version; bh=C0audpxSzquiZTq+fde126QuICSHDh5alP7jqyENsUs=; b=m2uw6eyuKNp3h51SZy/MQjIQ2uQpDsSfk0PYsW9lp4mUAlNkLjwtGmTp 13AezaM4MM3h9IQN5o32gR9nqQeNekmtUZEHmiKBE4VGQlutFHo0uts1E eRkCINW7lDKlcgt5+Qsi6o4h66HezFx4QKpovMU+wtvb+i6e/SMCAgvNI YpUixwzk4qWuJs3ckH/Alvj1vgTrAf1UB/gG2/GAWlTDA0S30PMWzBmQP v9nLWUX/nrtay3ZAvxTUHgPmGGGicMR68cCiwadtO9vYDGGuLzJ2Dsp3r nbrEGYvUcHO0wUk7PkML+RkOynWhw8uMZZRgPAoIw6yIXbNq1G/EMz9T2 A==; X-CSE-ConnectionGUID: EZFlHojVQfOjiYQuAYM/yQ== X-CSE-MsgGUID: o7PLuUCoRZqeePjLlBN8Yg== X-IronPort-AV: E=McAfee;i="6700,10204,11314"; a="37192213" X-IronPort-AV: E=Sophos;i="6.12,310,1728975600"; d="scan'208";a="37192213" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2025 11:37:37 -0800 X-CSE-ConnectionGUID: imMDZ4pNTom8uVKL1BNcbw== X-CSE-MsgGUID: CJzB/v4HREG7GXEQ0eQk7w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="109210197" Received: from orsosgc001.jf.intel.com (HELO orsosgc001.intel.com) ([10.165.21.142]) by fmviesa005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2025 11:37:36 -0800 Date: Mon, 13 Jan 2025 11:37:36 -0800 Message-ID: <85wmeyec8v.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: Sai Teja Pottumuttu Cc: Subject: Re: [PATCH i-g-t v3 3/3] tests/intel/xe_oa: Remove hardcoded time heuristics In-Reply-To: <20250113061949.753864-4-sai.teja.pottumuttu@intel.com> References: <20250113061949.753864-1-sai.teja.pottumuttu@intel.com> <20250113061949.753864-4-sai.teja.pottumuttu@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-redhat-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" On Sun, 12 Jan 2025 22:19:49 -0800, Sai Teja Pottumuttu wrote: > > Some tests in xe_oa tests have hardcoded timing heuristics. Refactor it to > make it more robust and reliable. The patch extends the wait time logically > but usually it would take a single iteration for the required reports to be > available so wait time doesn't change much. > > v2: > - Extend commit message [Lucas] > - Make wait function more generic [Lucas] > > v3: > - Change wait function name [Ashutosh] > - Address nits [Ashutosh] Reviewed-by: Ashutosh Dixit > Signed-off-by: Sai Teja Pottumuttu > --- > tests/intel/xe_oa.c | 27 ++++++++++++++++++++++----- > 1 file changed, 22 insertions(+), 5 deletions(-) > > diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c > index cd081ecff..df7fa3229 100644 > --- a/tests/intel/xe_oa.c > +++ b/tests/intel/xe_oa.c > @@ -4367,6 +4367,26 @@ static void map_oa_buffer_forked_access(const struct drm_xe_engine_class_instanc > munmap(vaddr, size); > } > > +static void mmap_wait_for_periodic_reports(void *oa_vaddr, uint32_t n, > + const struct drm_xe_engine_class_instance *hwe) > +{ > + uint32_t period_us = oa_exponent_to_ns(oa_exp_1_millisec) / 1000; > + struct intel_xe_perf_metric_set *test_set = metric_set(hwe); > + uint64_t fmt = test_set->perf_oa_format; > + uint32_t num_periodic_reports = 0; > + uint32_t *reports; > + > + while (num_periodic_reports < n) { > + usleep(4 * n * period_us); > + num_periodic_reports = 0; > + for (reports = (uint32_t *)oa_vaddr; > + reports[0] && oa_timestamp(reports, fmt) && oa_report_is_periodic(reports); > + reports += get_oa_format(fmt).size) { > + num_periodic_reports++; > + } > + } > +} > + > static void check_reports(void *oa_vaddr, uint32_t oa_size, > const struct drm_xe_engine_class_instance *hwe) > { > @@ -4396,12 +4416,10 @@ static void check_reports_from_mapped_buffer(const struct drm_xe_engine_class_in > { > void *vaddr; > uint32_t size; > - uint32_t period_us = oa_exponent_to_ns(oa_exp_1_millisec) / 1000; > > vaddr = map_oa_buffer(&size); > > - /* wait for approx 100 reports */ > - usleep(100 * period_us); > + mmap_wait_for_periodic_reports(vaddr, 10, hwe); > check_reports(vaddr, size, hwe); > > munmap(vaddr, size); > @@ -4426,12 +4444,11 @@ static void closed_fd_and_unmapped_access(const struct drm_xe_engine_class_insta > }; > void *vaddr; > uint32_t size; > - uint32_t period_us = oa_exponent_to_ns(oa_exp_1_millisec) / 1000; > > stream_fd = __perf_open(drm_fd, ¶m, false); > vaddr = map_oa_buffer(&size); > > - usleep(100 * period_us); > + mmap_wait_for_periodic_reports(vaddr, 10, hwe); > check_reports(vaddr, size, hwe); > > munmap(vaddr, size); > -- > 2.34.1 >