rr 5.8.0 does not work on i7-1355U

Open
#3,849 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp, linux

Research direction

Start at src/PerfCounters.cc:411 and reproduce with rr record ./a.out and perf stat -e r5111c4 true on the reported i7-1355U system. Trace how rr checks branch events and compare that with perf's unsupported-event result on Linux 6.8.0-45-generic. Done means the reported hardware configuration has a verified, appropriate rr outcome instead of the current abort.

Written by the indexing model from the issue text.

Description

I use rr 5.8.0 on a thinkpad l13 yoga gen 4. See below failure (even if perfs work, I added the result of lscpu too)

tmp ⟩ rr record ./a.out
rr: Saving execution to trace directory `/home/ilan/.local/share/rr/a.out-6'.
[FATAL src/PerfCounters.cc:411:check_working_counters()] 
Got 0 branch events, expected at least 500.

The hardware performance counter seems to not be working. Check
that hardware performance counters are working by running
  perf stat -e r5111c4 true
and checking that it reports a nonzero number of events.
If performance counters seem to be working with 'perf', file an
rr issue, otherwise check your hardware/OS/VM configuration. Also
check that other software is not using performance counters on
this CPU.
=== Start rr backtrace:
rr(_ZN2rr13dump_rr_stackEv+0x5a)[0x56200a6ea27a]
rr(_ZN2rr15notifying_abortEv+0x14)[0x56200a6ea2d4]
rr(+0xde664)[0x56200a6c9664]
rr(_ZN2rr12PerfCounters5startEPNS_4TaskEl+0xc77)[0x56200a7eb217]
rr(_ZN2rr4Task16resume_executionENS_13ResumeRequestENS_11WaitRequestENS_12TicksRequestEi+0x5fd)[0x56200a718aad]
rr(_ZN2rr13RecordSession13task_continueERKNS0_9StepStateE+0x3eb)[0x56200a7e042b]
rr(_ZN2rr13RecordSession11record_stepEv+0x38a)[0x56200a7d9ffa]
rr(_ZN2rr13RecordCommand3runERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE+0xe14)[0x56200a
7deb14]
rr(main+0x199)[0x56200a6c4bc9]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7fb1b1629d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7fb1b1629e40]
rr(_start+0x2e)[0x56200a6c51be]
=== End rr backtrace
fish: Job 1, 'rr record ./a.out' terminated by signal SIGABRT (Abort)
tmp ⟩ perf stat -e r5111c4 true

WARNING: event 'N/A' not valid (bits 16,20,22 of config '5111c4' not supported by kernel)!

 Performance counter stats for 'true':

     <not counted>      cpu_core/r5111c4/                                                       (0,00%)

       0,004004960 seconds time elapsed

       0,001102000 seconds user
       0,002204000 seconds sys


tmp ⟩ uname -r
6.8.0-45-generic
tmp ⟩ uname -a
Linux ILTY-401 6.8.0-45-generic #45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 11 15:25:05 UTC 2 x86_64 x86_64 x86_6
4 GNU/Linux
tmp ⟩ lscpu
Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          39 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   12
  On-line CPU(s) list:    0-11
Vendor ID:                GenuineIntel
  Model name:             13th Gen Intel(R) Core(TM) i7-1355U
    CPU family:           6
    Model:                186
    Thread(s) per core:   2
    Core(s) per socket:   10
    Socket(s):            1
    Stepping:             3
    CPU max MHz:          5000,0000
    CPU min MHz:          400,0000
    BogoMIPS:             5222.40
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi m
                          mx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon p
                          ebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq 
                          dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2a
                          pic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cp
                          uid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad f
                          sgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_
                          pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida 
                          arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke wai
                          tpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flu
                          sh_l1d arch_capabilities
Virtualization features:  
  Virtualization:         VT-x
Caches (sum of all):      
  L1d:                    352 KiB (10 instances)
  L1i:                    576 KiB (10 instances)
  L2:                     6,5 MiB (4 instances)
  L3:                     12 MiB (1 instance)
NUMA:                     
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-11
Vulnerabilities:          
  Gather data sampling:   Not affected
  Itlb multihit:          Not affected
  L1tf:                   Not affected
  Mds:                    Not affected
  Meltdown:               Not affected
  Mmio stale data:        Not affected
  Reg file data sampling: Mitigation; Clear Register File
  Retbleed:               Not affected
  Spec rstack overflow:   Not affected
  Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:             Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIBRS SW seque
                          nce; BHI BHI_DIS_S
  Srbds:                  Not affected
  Tsx async abort:        Not affected

Dominant language
C++
Stars
10.7k
Forks
662
Avg merge
2d 3h
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rr-debugger/rr

All issues in rr-debugger/rr

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.