Patch "perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server" has been added to the 4.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server

to the 4.19-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     perf-x86-intel-uncore-fix-filter_tid-mask-for-cha-ev.patch
and it can be found in the queue-4.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 1f21131bc5368ba0b0e246f4091fe33808f6cfb1
Author: Alexander Antonov <alexander.antonov@xxxxxxxxxxxxxxx>
Date:   Mon Nov 15 12:03:32 2021 +0300

    perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
    
    [ Upstream commit e324234e0aa881b7841c7c713306403e12b069ff ]
    
    According Uncore Reference Manual: any of the CHA events may be filtered
    by Thread/Core-ID by using tid modifier in CHA Filter 0 Register.
    Update skx_cha_hw_config() to follow Uncore Guide.
    
    Fixes: cd34cd97b7b4 ("perf/x86/intel/uncore: Add Skylake server uncore support")
    Signed-off-by: Alexander Antonov <alexander.antonov@xxxxxxxxxxxxxxx>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
    Reviewed-by: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20211115090334.3789-2-alexander.antonov@xxxxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/x86/events/intel/uncore_snbep.c b/arch/x86/events/intel/uncore_snbep.c
index c06074b847fa6..f6f5641c6299a 100644
--- a/arch/x86/events/intel/uncore_snbep.c
+++ b/arch/x86/events/intel/uncore_snbep.c
@@ -3416,6 +3416,9 @@ static int skx_cha_hw_config(struct intel_uncore_box *box, struct perf_event *ev
 	struct hw_perf_event_extra *reg1 = &event->hw.extra_reg;
 	struct extra_reg *er;
 	int idx = 0;
+	/* Any of the CHA events may be filtered by Thread/Core-ID.*/
+	if (event->hw.config & SNBEP_CBO_PMON_CTL_TID_EN)
+		idx = SKX_CHA_MSR_PMON_BOX_FILTER_TID;
 
 	for (er = skx_uncore_cha_extra_regs; er->msr; er++) {
 		if (er->event != (event->hw.config & er->config_mask))



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux