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 C91CEEB64D7 for ; Fri, 16 Jun 2023 18:15:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1469E10E673; Fri, 16 Jun 2023 18:15:05 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A64B10E673 for ; Fri, 16 Jun 2023 18:15:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686939303; x=1718475303; h=date:message-id:from:to:cc:subject:in-reply-to: references:mime-version; bh=oxHtqlXAudb3cMwHD/xnoriz+0wpWPK05ARjBsHwIlo=; b=MAWBC56B/OTDVgiUQtvJ9ahzNvNGzn7UkM8dqiEfyR9v+8MYacXCzYm/ sp0TkEgo5xza6GDap9WDFD3gT4oedHbcZKT+p5xiVMZ8QfGypQIovPUh4 x4K2hVnEDyOPxMd8aY4khnl6w2qdN8rxPsyM+UniXy2gHW8kqMqfZgzI7 4HvHDTraBa1371Dwf+zhdy/uhRquUUsslJMDJATM8cbBkE0t+3hstK/39 ufIYrIP/4XOETowkaFAZaf84N6XQu7kOZZwBqB5j9hhtPHwDzqq1PH5A6 afjYRj+WNr7cqE1wSAMmk3zCyaGqKyDECLt+u9qd03xr0V5RAt4ME3EiC Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10743"; a="362693643" X-IronPort-AV: E=Sophos;i="6.00,248,1681196400"; d="scan'208";a="362693643" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2023 11:14:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10743"; a="778242891" X-IronPort-AV: E=Sophos;i="6.00,248,1681196400"; d="scan'208";a="778242891" Received: from adixit-mobl.amr.corp.intel.com (HELO adixit-arch.intel.com) ([10.251.4.138]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2023 11:14:58 -0700 Date: Fri, 16 Jun 2023 11:14:37 -0700 Message-ID: <87r0qbxoj6.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: Umesh Nerlige Ramappa In-Reply-To: <20230616173402.699776-1-umesh.nerlige.ramappa@intel.com> References: <20230616173402.699776-1-umesh.nerlige.ramappa@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-pc-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 Subject: Re: [Intel-gfx] [PATCH] drm/i915/perf: Consider OA buffer boundary when zeroing out reports X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Fri, 16 Jun 2023 10:34:02 -0700, Umesh Nerlige Ramappa wrote: > > For reports that are not powers of 2, reports at the end of the OA > buffer may get split across the buffer boundary. When zeroing out such > reports, take the split into consideration. > > v2: Use OA_BUFFER_SIZE (Ashutosh) > > Fixes: 09a36015d9a0 ("drm/i915/perf: Clear out entire reports after reading if not power of 2 size") > Signed-off-by: Umesh Nerlige Ramappa > --- > drivers/gpu/drm/i915/i915_perf.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c > index b5491a382bfd..66ab6e1d5c7b 100644 > --- a/drivers/gpu/drm/i915/i915_perf.c > +++ b/drivers/gpu/drm/i915/i915_perf.c > @@ -867,8 +867,17 @@ static int gen8_append_oa_reports(struct i915_perf_stream *stream, > oa_report_id_clear(stream, report32); > oa_timestamp_clear(stream, report32); > } else { > + u8 *oa_buf_end = stream->oa_buffer.vaddr + > + OA_BUFFER_SIZE; Above we already have "u8 *oa_buf_base = stream->oa_buffer.vaddr;" so we could just use that? > + u32 part = oa_buf_end - (u8 *)report32; We also have "u8 *report". In any case: Reviewed-by: Ashutosh Dixit > + > /* Zero out the entire report */ > - memset(report32, 0, report_size); > + if (report_size <= part) { > + memset(report32, 0, report_size); > + } else { > + memset(report32, 0, part); > + memset(oa_buf_base, 0, report_size - part); > + } > } > } > > -- > 2.36.1 >