Commit cf7159d6 authored by Adrian Hunter's avatar Adrian Hunter Committed by sanglipeng
Browse files

perf/x86/intel/pt: Fix sampling using single range output

stable inclusion
from stable-v5.10.156
commit 5e2f14d77223ab7c0bae83f8f2ab3bde6a2bb028
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7MCG1

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5e2f14d77223ab7c0bae83f8f2ab3bde6a2bb028



--------------------------------

commit ce0d998b upstream.

Deal with errata TGL052, ADL037 and RPL017 "Trace May Contain Incorrect
Data When Configured With Single Range Output Larger Than 4KB" by
disabling single range output whenever larger than 4KB.

Fixes: 67063847 ("perf/x86/intel/pt: Opportunistically use single range output mode")
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20221112151508.13768-1-adrian.hunter@intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent 3310aafe
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1247,6 +1247,15 @@ static int pt_buffer_try_single(struct pt_buffer *buf, int nr_pages)
	if (1 << order != nr_pages)
		goto out;

	/*
	 * Some processors cannot always support single range for more than
	 * 4KB - refer errata TGL052, ADL037 and RPL017. Future processors might
	 * also be affected, so for now rather than trying to keep track of
	 * which ones, just disable it for all.
	 */
	if (nr_pages > 1)
		goto out;

	buf->single = true;
	buf->nr_pages = nr_pages;
	ret = 0;