Intel Panther Lake PMU support

オープン
#4,152 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
55/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
cpp, linux

調査の方向性

Start with src/PerfCounters_x86.h at compute_cpu_microarch(), where the unknown Intel family 6 model 0xcc is reported, and inspect the attached patch and diagnostics for the proposed Panther Lake settings. Check how existing Intel microarchitectures define rcb_cntr_event, PMU_TICKS_RCB, and skid allowances. Done means rr can record on Panther Lake with the documented conditional-branch event encoding and the appropriate P-core and E-core settings.

索引モデルが issue の本文から書いたものです。

説明

Hi rr team. I built rr from commit 116719af0a37781ef8d2f6d6d4c4fbcd769a31f1 on a new
Intel Core Ultra X9 388H laptop. But trying to record fails with:

$ rr record ls
[FATAL src/PerfCounters_x86.h:190:compute_cpu_microarch()] Intel CPU family 0x6 model 0xcc unknown

I asked ChatGPT to prepare a fix for me, and it came up with the attached patch which has been working fine for me so far:
rr-panther-lake-116719af.patch

I also had it gather details of my laptop that my be helpful to you, and here they are:
rr-panther-lake-diagnostics.txt

In the usual ChatGPT way, it wanted to send you a very verbose message. I've cut it down to essentials:

Hardware reported by lshw

Product: Intel(R) Core(TM) Ultra X9 388H
Family: 6
Model: 204 decimal / 0xcc
Stepping: 2 (lshw version: 6.204.2)
Microcode: 281, as reported by lshw
Enabled cores / hardware threads: 16 / 16

Intel identifies this product as Panther Lake, with 4 P-cores, 8 E-cores and 4 low-power E-cores. The relevant microarchitectures are Cougar Cove for the P-cores and Darkmont for the E-cores.

Panther Lake's documented conditional-branch event encoding differs from both Arrow Lake and Skymont. Intel's event data specifies
BR_INST_RETIRED.COND with EventCode=0xc4, UMask=0x07 and UMaskExt=0x00 for both Cougar Cove and Darkmont. In rr's existing table convention, this corresponds to rcb_cntr_event=0x5107c4.

Intel's mapfile explicitly maps GenuineIntel-6-CC to these Cougar Cove and Darkmont event files.

The patch preserves retired-conditional-branch tick semantics (PMU_TICKS_RCB). It uses initial skid allowances of 125 for Panther Lake P-cores and 100 for Darkmont, borrowed from the corresponding preceding rr configurations.

主要言語
C++
スター
10.7k
フォーク
667
平均マージ
1日 21時間
マージ済み PR(30日)
31

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

rr-debugger/rr のほかの issue

rr-debugger/rr の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。