- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm trying to run Intel VTune Profiler on a i7-2600K Sandy Bridge processor on Ubuntu 22.04.1 LTS server with kernel Linux 5.15.0-58-generic.
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
CPU family: 6
Model: 42
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Stepping: 7
CPU max MHz: 3800.0000
CPU min MHz: 1600.0000
BogoMIPS: 6821.71
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht t
m pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmp
erf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline
_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm
ida arat pln pts md_clear flush_l1d
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 128 KiB (4 instances)
L1i: 128 KiB (4 instances)
L2: 1 MiB (4 instances)
L3: 8 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-7
Vulnerabilities:
Itlb multihit: KVM: Mitigation: VMX disabled
L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
Mds: Mitigation; Clear CPU buffers; SMT vulnerable
Meltdown: Mitigation; PTI
Mmio stale data: Unknown: No mitigations
Retbleed: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP conditional, RSB filling, PBRSB-eIBRS Not affected
Srbds: Not affected
Tsx async abort: Not affected
Unfortunately, no analysis can be done (including Performance Snapshot or Microarchitecture Exploration) as the CPU cannot be recognized.
I've tried remote SSH analysis without Intel kernel driver, and the error message was "This analysis type is not applicable to the system because VTune Profiler cannot recognize the processor. If this is a new Intel processor, please check for an updated version of VTune Profiler. If this is an unreleased Intel processor, please contact Online Service Center for an NDA product package. This analysis type is not applicable to the current machine microarchitecture.".
I've also tried installing the Intel hardware sampling kernel driver on the server via "apt install intel-basekit", unfortunately, /opt/intel/oneapi/vtune/latest/bin64/vtune-self-checker.sh reports the same error:
# /opt/intel/oneapi/vtune/latest/bin64/vtune-self-checker.sh
Intel(R) VTune(TM) Profiler Self Check Utility
Copyright (C) 2009 Intel Corporation. All rights reserved.
Build Number: 624757
HW event-based analysis (counting mode)
Example of analysis types: Performance Snapshot
Collection: Fail
vtune: Error: This analysis type is not applicable to the system because VTune Profiler cannot recognize the processor. If this is a new Intel processor, please check for an updated version of VTune Profiler. If this is an unreleased Intel processor, please contact Online Service Center for an NDA product package.
vtune: Error: This analysis type is not applicable to the current machine microarchitecture.
From dmesg, it can be seen that the kernel driver has been loaded but it could not recognize the CPU:
[ 476.368743] sep5_38: Driver loading... sym_lookup_func_addr=ffffffffae9985f0
[ 476.369260] sep5_38: [load] [UTILITY_Driver_Log_Init@1132]: Initialized driver log using contiguous physical memory.
[ 476.369265] sep5_38: [load] [lwpmu_Load@7483]: Major number is 511
[ 476.369270] sep5_38: [load] [lwpmu_Load@7491]: Detected 8 total CPUs and 8 active CPUs.
[ 476.371164] sep5_38: [warning] [lwpmudrv_Detect_PMT_Endpoints@6605]: Address of PMT function is invalid
[ 476.371176] sep5_38: [load] [lwpmu_Load@7882]: PMU collection driver v5.38.13 Beta has been loaded.
[ 476.371179] sep5_38: [load] [lwpmu_Load@7892]: NMI will be used for handling PMU interrupts.
[ 476.371186] sep5_38: [load] [PMU_LIST_Initialize@644]: PMU check enabled! F6.M2a.S7 index=-1 drv_type=PUBLIC arch_pmu_info_used=no
[ 476.371189] sep5_38: [load] [PMU_LIST_Build_MSR_List@662]: No MSR list information detected!
[ 476.371191] sep5_38: [load] [PMU_LIST_Build_PCI_List@702]: No PCI list information detected!
[ 476.371193] sep5_38: [load] [PMU_LIST_Build_MMIO_List@749]: No MMIO list information detected!
[ 477.485441] vtsspp: Driver version: 1.8.380-624757
[ 477.485447] vtsspp: Driver options: uid: 0, gid: 1003, mode: 660
[ 477.485451] vtsspp: Kernel version: 5.15.0-58-generic
[ 477.485454] vtsspp: Detected 8 CPU(s) and 2 thread(s) per core
[ 477.485455] vtsspp: CPU family: 0x06, model: 0x2a, stepping: 07
[ 477.485456] vtsspp: CPU freq: 3411127KHz, timer freq: 1000000KHz
[ 477.485513] vtsspp: Driver options: ksyms: ffffffffae9985f0
[ 477.485515] vtsspp: PERFMONv3: fixed counters: 3, general counters: 4
[ 477.486558] vtsspp: Kernel: KPTI detected
[ 477.486559] vtsspp: Kernel: KASLR detected
[ 477.486560] vtsspp: Driver has been loaded
[ 477.506761] socwatch2_15: unknown parameter 'socwatch2_15' ignored
[ 477.507193] socwatch2_15: -----------------------------------------
[ 477.507196] socwatch2_15: OK: LOADED SoC Watch Driver
[ 477.507196] socwatch2_15: -----------------------------------------
It's even worse that the Intel driver code contains serious kernel bugs. When the MSR registers cannot be recognized due to the unknown CPU model, the Intel code generates three out-of-bound memory accesses in pmu_list.c, line 665, 705 and 752.
[ 113.335182] ================================================================================
[ 113.335190] UBSAN: array-index-out-of-bounds in /opt/intel/oneapi/vtune/2023.0.0/sepdk/src/pmu_list.c:665:32
[ 113.335196] index -1 is out of range for type 'PMU_INFO_NODE [52]'
[ 113.335201] CPU: 7 PID: 961 Comm: insmod Tainted: G OE 5.15.0-58-generic #64-Ubuntu
[ 113.335204] Hardware name: System manufacturer System Product Name/P8P67, BIOS 3602 11/01/2012
[ 113.335207] Call Trace:
[ 113.335209] <TASK>
[ 113.335212] show_stack+0x52/0x5c
[ 113.335220] dump_stack_lvl+0x4a/0x63
[ 113.335229] dump_stack+0x10/0x16
[ 113.335233] ubsan_epilogue+0x9/0x49
[ 113.335237] __ubsan_handle_out_of_bounds.cold+0x44/0x49
[ 113.335241] ? PMU_LIST_Initialize+0x149/0x230 [sep5]
[ 113.335269] PMU_LIST_Build_MSR_List+0x1ca/0x1f0 [sep5]
[ 113.335287] lwpmu_Load+0x1561/0x17f0 [sep5]
[ 113.335303] ? __cond_resched+0x1a/0x50
[ 113.335308] ? down_write+0x13/0x60
[ 113.335311] ? __cond_resched+0x1a/0x50
[ 113.335314] ? vunmap_range_noflush+0x3d5/0x470
[ 113.335322] ? __vunmap+0x1ee/0x260
[ 113.335325] ? kfree+0x1f7/0x250
[ 113.335331] ? __vunmap+0x1ee/0x260
[ 113.335334] ? lwpmudrv_Abnormal_Handler+0x1c0/0x1c0 [sep5]
[ 113.335351] do_one_initcall+0x49/0x1e0
[ 113.335360] ? kmem_cache_alloc_trace+0x19e/0x2e0
[ 113.335366] do_init_module+0x52/0x260
[ 113.335371] load_module+0xb2b/0xbc0
[ 113.335374] __do_sys_finit_module+0xbf/0x120
[ 113.335378] __x64_sys_finit_module+0x18/0x20
[ 113.335381] do_syscall_64+0x5c/0xc0
[ 113.335385] ? fput+0x13/0x20
[ 113.335391] ? ksys_mmap_pgoff+0x154/0x2c0
[ 113.335394] ? __x64_sys_newfstatat+0x1c/0x30
[ 113.335399] ? exit_to_user_mode_prepare+0x37/0xb0
[ 113.335405] ? syscall_exit_to_user_mode+0x27/0x50
[ 113.335409] ? __x64_sys_mmap+0x33/0x50
[ 113.335413] ? do_syscall_64+0x69/0xc0
[ 113.335416] entry_SYSCALL_64_after_hwframe+0x61/0xcb
[ 113.335420] RIP: 0033:0x7f5b20e03a3d
[ 113.335425] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48
[ 113.335428] RSP: 002b:00007ffc9489a988 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 113.335432] RAX: ffffffffffffffda RBX: 0000559819061800 RCX: 00007f5b20e03a3d
[ 113.335435] RDX: 0000000000000000 RSI: 00005598190612a0 RDI: 0000000000000003
[ 113.335437] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 113.335439] R10: 0000000000000003 R11: 0000000000000246 R12: 00005598190612a0
[ 113.335441] R13: 00005598190617a0 R14: 00007ffc9489abf0 R15: 0000559819061910
[ 113.335444] </TASK>
[ 113.335445] ================================================================================
[ 113.335451] sep5_38: [load] [PMU_LIST_Build_MSR_List@669]: No MSR list information detected!
[ 113.335453] ================================================================================
[ 113.335456] UBSAN: array-index-out-of-bounds in /opt/intel/oneapi/vtune/2023.0.0/sepdk/src/pmu_list.c:705:33
[ 113.335461] index -1 is out of range for type 'PMU_INFO_NODE [52]'
[ 113.335465] CPU: 7 PID: 961 Comm: insmod Tainted: G OE 5.15.0-58-generic #64-Ubuntu
[ 113.335468] Hardware name: System manufacturer System Product Name/P8P67, BIOS 3602 11/01/2012
[ 113.335469] Call Trace:
[ 113.335470] <TASK>
[ 113.335472] show_stack+0x52/0x5c
[ 113.335475] dump_stack_lvl+0x4a/0x63
[ 113.335478] dump_stack+0x10/0x16
[ 113.335481] ubsan_epilogue+0x9/0x49
[ 113.335484] __ubsan_handle_out_of_bounds.cold+0x44/0x49
[ 113.335488] PMU_LIST_Build_PCI_List+0x17b/0x190 [sep5]
[ 113.335502] lwpmu_Load+0x1566/0x17f0 [sep5]
[ 113.335515] ? __cond_resched+0x1a/0x50
[ 113.335518] ? down_write+0x13/0x60
[ 113.335521] ? __cond_resched+0x1a/0x50
[ 113.335524] ? vunmap_range_noflush+0x3d5/0x470
[ 113.335528] ? __vunmap+0x1ee/0x260
[ 113.335532] ? kfree+0x1f7/0x250
[ 113.335536] ? __vunmap+0x1ee/0x260
[ 113.335540] ? lwpmudrv_Abnormal_Handler+0x1c0/0x1c0 [sep5]
[ 113.335555] do_one_initcall+0x49/0x1e0
[ 113.335559] ? kmem_cache_alloc_trace+0x19e/0x2e0
[ 113.335563] do_init_module+0x52/0x260
[ 113.335566] load_module+0xb2b/0xbc0
[ 113.335569] __do_sys_finit_module+0xbf/0x120
[ 113.335573] __x64_sys_finit_module+0x18/0x20
[ 113.335576] do_syscall_64+0x5c/0xc0
[ 113.335580] ? fput+0x13/0x20
[ 113.335583] ? ksys_mmap_pgoff+0x154/0x2c0
[ 113.335585] ? __x64_sys_newfstatat+0x1c/0x30
[ 113.335589] ? exit_to_user_mode_prepare+0x37/0xb0
[ 113.335592] ? syscall_exit_to_user_mode+0x27/0x50
[ 113.335596] ? __x64_sys_mmap+0x33/0x50
[ 113.335599] ? do_syscall_64+0x69/0xc0
[ 113.335602] entry_SYSCALL_64_after_hwframe+0x61/0xcb
[ 113.335606] RIP: 0033:0x7f5b20e03a3d
[ 113.335609] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48
[ 113.335611] RSP: 002b:00007ffc9489a988 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 113.335614] RAX: ffffffffffffffda RBX: 0000559819061800 RCX: 00007f5b20e03a3d
[ 113.335616] RDX: 0000000000000000 RSI: 00005598190612a0 RDI: 0000000000000003
[ 113.335617] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 113.335618] R10: 0000000000000003 R11: 0000000000000246 R12: 00005598190612a0
[ 113.335620] R13: 00005598190617a0 R14: 00007ffc9489abf0 R15: 0000559819061910
[ 113.335623] </TASK>
[ 113.335624] ================================================================================
[ 113.335630] sep5_38: [load] [PMU_LIST_Build_PCI_List@709]: No PCI list information detected!
[ 113.335631] ================================================================================
[ 113.335634] UBSAN: array-index-out-of-bounds in /opt/intel/oneapi/vtune/2023.0.0/sepdk/src/pmu_list.c:752:33
[ 113.335639] index -1 is out of range for type 'PMU_INFO_NODE [52]'
[ 113.335643] CPU: 7 PID: 961 Comm: insmod Tainted: G OE 5.15.0-58-generic #64-Ubuntu
[ 113.335645] Hardware name: System manufacturer System Product Name/P8P67, BIOS 3602 11/01/2012
[ 113.335646] Call Trace:
[ 113.335647] <TASK>
[ 113.335648] show_stack+0x52/0x5c
[ 113.335651] dump_stack_lvl+0x4a/0x63
[ 113.335655] dump_stack+0x10/0x16
[ 113.335658] ubsan_epilogue+0x9/0x49
[ 113.335661] __ubsan_handle_out_of_bounds.cold+0x44/0x49
[ 113.335665] PMU_LIST_Build_MMIO_List+0x15f/0x180 [sep5]
[ 113.335679] lwpmu_Load+0x156b/0x17f0 [sep5]
[ 113.335693] ? __cond_resched+0x1a/0x50
[ 113.335695] ? down_write+0x13/0x60
[ 113.335698] ? __cond_resched+0x1a/0x50
[ 113.335701] ? vunmap_range_noflush+0x3d5/0x470
[ 113.335705] ? __vunmap+0x1ee/0x260
[ 113.335708] ? kfree+0x1f7/0x250
[ 113.335712] ? __vunmap+0x1ee/0x260
[ 113.335716] ? lwpmudrv_Abnormal_Handler+0x1c0/0x1c0 [sep5]
[ 113.335731] do_one_initcall+0x49/0x1e0
[ 113.335734] ? kmem_cache_alloc_trace+0x19e/0x2e0
[ 113.335738] do_init_module+0x52/0x260
[ 113.335741] load_module+0xb2b/0xbc0
[ 113.335744] __do_sys_finit_module+0xbf/0x120
[ 113.335748] __x64_sys_finit_module+0x18/0x20
[ 113.335750] do_syscall_64+0x5c/0xc0
[ 113.335754] ? fput+0x13/0x20
[ 113.335756] ? ksys_mmap_pgoff+0x154/0x2c0
[ 113.335759] ? __x64_sys_newfstatat+0x1c/0x30
[ 113.335763] ? exit_to_user_mode_prepare+0x37/0xb0
[ 113.335766] ? syscall_exit_to_user_mode+0x27/0x50
[ 113.335769] ? __x64_sys_mmap+0x33/0x50
[ 113.335772] ? do_syscall_64+0x69/0xc0
[ 113.335775] entry_SYSCALL_64_after_hwframe+0x61/0xcb
[ 113.335778] RIP: 0033:0x7f5b20e03a3d
[ 113.335781] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48
[ 113.335783] RSP: 002b:00007ffc9489a988 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 113.335786] RAX: ffffffffffffffda RBX: 0000559819061800 RCX: 00007f5b20e03a3d
[ 113.335788] RDX: 0000000000000000 RSI: 00005598190612a0 RDI: 0000000000000003
[ 113.335790] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 113.335791] R10: 0000000000000003 R11: 0000000000000246 R12: 00005598190612a0
[ 113.335793] R13: 00005598190617a0 R14: 00007ffc9489abf0 R15: 0000559819061910
[ 113.335796] </TASK>
[ 113.335797] ================================================================================
[ 113.335801] sep5_38: [load] [PMU_LIST_Build_MMIO_List@756]: No MMIO list information detected!
I've manually patched the bugs - these bugs are easy to fix: when a CPU is not recognized, the value "-1" is returned. However, the check "if (pmu_info_index == -1 || !unit_info_list)" is only made AFTER using the value "pmu_info_index" to index an array - it should've been checked BEFORE trying to access the array. Simply moving the if statement above array indexing can fix it, as seen in my following patch.
--- /opt/intel/oneapi/vtune/2023.0.0/sepdk/src/pmu_list.c 2022-12-06 09:21:01.000000000 +0000
+++ /opt/intel/oneapi/vtune/2023.0.0/sepdk/src.patched/pmu_list.c 2023-01-31 15:49:26.352246247 +0000
@@ -658,6 +658,12 @@ PMU_LIST_Build_MSR_List(void)
SEP_DRV_LOG_TRACE_IN("");
+ if (pmu_info_index == -1 || !msr_info_list) {
+ SEP_DRV_LOG_LOAD("No MSR list information detected!\n");
+ SEP_DRV_LOG_TRACE_OUT("Success");
+ return status;
+ }
+
if (arch_pmu_info_used) {
msr_info_list = architectural_pmu_info_list[pmu_info_index]
.msr_info_list;
@@ -665,12 +671,6 @@ PMU_LIST_Build_MSR_List(void)
msr_info_list = pmu_info_list[pmu_info_index].msr_info_list;
}
- if (pmu_info_index == -1 || !msr_info_list) {
- SEP_DRV_LOG_LOAD("No MSR list information detected!\n");
- SEP_DRV_LOG_TRACE_OUT("Success");
- return status;
- }
-
#if !defined(USE_RANGE_OPTIMIZATION)
status = pmu_list_Create_MSR_Tree((arch_pmu_info_used) ?
architectural_pmu_info_list :
@@ -698,6 +698,12 @@ PMU_LIST_Build_PCI_List(void)
SEP_DRV_LOG_TRACE_IN("");
+ if (pmu_info_index == -1 || !unit_info_list) {
+ SEP_DRV_LOG_LOAD("No PCI list information detected!\n");
+ SEP_DRV_LOG_TRACE_OUT("Success");
+ return OS_SUCCESS;
+ }
+
if (arch_pmu_info_used) {
unit_info_list = architectural_pmu_info_list[pmu_info_index]
.pci_info_list;
@@ -705,12 +711,6 @@ PMU_LIST_Build_PCI_List(void)
unit_info_list = pmu_info_list[pmu_info_index].pci_info_list;
}
- if (pmu_info_index == -1 || !unit_info_list) {
- SEP_DRV_LOG_LOAD("No PCI list information detected!\n");
- SEP_DRV_LOG_TRACE_OUT("Success");
- return OS_SUCCESS;
- }
-
SEP_DRV_MEMSET(&key, 0, sizeof(PMU_PCI_INFO_NODE));
while (unit_info_list[unit_idx]
@@ -745,6 +745,12 @@ PMU_LIST_Build_MMIO_List(void)
SEP_DRV_LOG_TRACE_IN("");
+ if (pmu_info_index == -1 || !unit_info_list) {
+ SEP_DRV_LOG_LOAD("No MMIO list information detected!\n");
+ SEP_DRV_LOG_TRACE_OUT("Success");
+ return OS_SUCCESS;
+ }
+
if (arch_pmu_info_used) {
unit_info_list = architectural_pmu_info_list[pmu_info_index]
.mmio_info_list;
@@ -752,12 +758,6 @@ PMU_LIST_Build_MMIO_List(void)
unit_info_list = pmu_info_list[pmu_info_index].mmio_info_list;
}
- if (pmu_info_index == -1 || !unit_info_list) {
- SEP_DRV_LOG_LOAD("No MMIO list information detected!\n");
- SEP_DRV_LOG_TRACE_OUT("Success");
- return OS_SUCCESS;
- }
-
SEP_DRV_MEMSET(&key, 0, sizeof(U64));
//Iterate through unit list
Unfortunately, even after the patch is applied, the CPU is still unrecognized - which is not a surprise, because the out-of-bound memory access bugs are triggered by a unrecognized CPU, not vice versa.
Does Intel still support running VTune on Sandy Bridge? It would be unfortunate if I have to throw away perfectly functional hardware just to run some profiling. Please consider reporting the "VTune Profiler cannot recognize the processor" to your developers so that a fix can be made. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Good day to you.
Sorry for the delay in getting back to you.
The requested correction has been implemented in the next release of Intel VTune Profiler and its user guide. Thanks for providing us with feedback to improve our products and services.
Intel will no longer monitor this thread. If you need any assistance with Intel products and services, kindly post a new question.
Thanks and Regards,
Jyothis V James
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Good day to you.
Thanks for posting in Intel® Communities.
Apologies that you are unable to perform profiling on Intel® Core i7-2600K processor.
Intel® VTune™ Profiler uses Hardware Event-Based Sampling (EBS) analysis which makes use of the on-chip Performance Monitoring Unit (PMU). This is only present on 3rd generation Intel® Xeon® processor family v3 (or later) and 4th generation (or later) Intel® Core™ processors.
Refer: Intel® VTune™ Profiler System Requirements: https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html#twocolumn_1513980175
Intel® Core™ i7-2600K being more than ten years old, our developers cannot provide support for the same. We recommend switching to a newer processor to perform any kind of profiling.
Alternatively, if your sole purpose of using Intel® VTune™ Profiler is to profile only the application irrespective of the hardware that you are using, you can use Intel® VTune™ Profiler on Intel® DevCloud for oneAPI. This can you give you valuable insights about the performance of the binary application that you are profiling. Kindly note that if the binary is dependent on the hardware that you are running, you cannot use this method and you might have to recompile it on Intel® DevCloud before performing the analysis.
Intel® VTune™ Profiler on Intel® DevCloud for oneAPI supports the following types of analysis:
- Performance Snapshot
- Hotspots and Threading with user-mode sampling
- Hotspots with HW event-based sampling, HPC Performance Characterization, etc.
- Microarchitecture Exploration
- Memory Access
- Hotspots with HW event-based sampling and call stacks
- Threading with HW event-based sampling
You can sign up for Intel® DevCloud for oneAPI at https://devcloud.intel.com/oneapi/
Refer: Intel® VTune™ Profiling on Intel® DevCloud for oneAPI at https://www.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/configuration-recipes/using-vtune-server-with-vs-code-intel-devcloud.html
Hope this helps. If this resolves your issue, kindly accept this as a solution as it might help others with a similar issue.
Thanks and Regards,
Jyothis V James
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@JyothisV_Intel wrote:
Intel® VTune™ Profiler uses Hardware Event-Based Sampling (EBS) analysis which makes use of the on-chip Performance Monitoring Unit (PMU). This is only present on 3rd generation Intel® Xeon® processor family v3 (or later) and 4th generation (or later) Intel® Core™ processors.
Intel® Core™ i7-2600K being more than ten years old, our developers cannot provide support for the same. We recommend switching to a newer processor to perform any kind of profiling.
Good to know.
However, I still have to report two problems:
1. It's still a bug of the documentation. As of 2023, the current Intel VTune Profile User Guide still mentions about running Microarchitecture Exploration on Nehalem, Westmere, and Sandy Bridge. As seen from here: https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/analyze-performance/microarchitecture-analysis-group/general-exploration-analysis.html
You can also run the Microarchitecture Exploration analysis on
other microarchitectures that are NOT covered with the Top-Down
Method in the VTune Profiler:
Intel Microarchitecture Code Name Sandy Bridge: This microarchitecture
is already partially based on the top-down method and the VTune Profiler
provides a hierarchical analysis of the hardware metrics based on the
following categories: Filled Pipeline Slots and Unfilled Pipeline Slots
(Stalls).
Intel Microarchitectures Code Name Nehalem and Westmere: During
Microarchitecture Exploration analysis on these microarchitectures,
the VTune Profiler collects metrics that help identify such hardware-
level performance problems as: Front End stall and its causes. Stalls
at execution and retirement: particularly those caused by stalls due
to the various high latency loads, wasted work caused by branch
misprediction, or long latency instructions.
All of these are 10+ years old CPU microarchitectures. I checked the documentation and it gave me an impression that the analysis was still supported on Sandy Bridge.
If these CPU microarchitectures are no longer supported, they should be removed from the documentation and replaced with information about new system requirements to avoid wasting time due to misleading documentation.
2. Intel VTune should use a more informative error message to minimize wasted time.
The current wording is: "This analysis type is not applicable to the system because VTune Profiler cannot recognize the processor. If this is a new Intel processor, please check for an updated version of VTune Profiler. If this is an unreleased Intel processor, please contact Online Service Center for an NDA product package. "
I suggest the wording to be changed: "This analysis type is not applicable to the system because VTune Profiler cannot recognize the processor. If this is an old Intel processor, please note that the minimum hardware requirement is 3rd generation Intel® Xeon® processor family v3 (or later) and 4th generation (or later) Intel® Core™ processors. If this is a new Intel processor, please check for an updated version of VTune Profiler. If this is an unreleased Intel processor, please contact Online Service Center for an NDA product package. "
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
BTW: In case anyone is reading the thread: I found the last version of Intel VTune that still supported Sandy Bridge is Intel VTune 2021.9.0. After adding Intel OneAPI's software repository to your package manager, this old version can be manually installed via "apt install intel-oneapi-vtune=2021.9.0-545" or "dnf install intel-oneapi-vtune-2021.9.0-545". You may want to make a backup of these packages and all their dependencies before Intel permanently removes them from their server...
That being said, Sandy Bridge is an old processor and it has fewer performance counters than 4th-gen Core CPUs, so just as Intel said, it's still not recommended. But this was enough for me to investigate my problem. (I do have servers with newer platforms, this Sandy Bridge one just happened to be at hand).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Sorry for the delay in getting back to you.
Thanks for the feedback and suggestions.
Our documentation team is working on getting the information in User Guide corrected. Regarding the feedback of improving the error message displayed, we have provided the same to the development team.
Regards,
Jyothis V James
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Good day to you.
Sorry for the delay in getting back to you.
The requested correction has been implemented in the next release of Intel VTune Profiler and its user guide. Thanks for providing us with feedback to improve our products and services.
Intel will no longer monitor this thread. If you need any assistance with Intel products and services, kindly post a new question.
Thanks and Regards,
Jyothis V James

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page