Re: linux-2.6.28-rc2 regression : oprofile doesnt work anymore ?

Eric Dumazet
2008-11-06T15:01:34Z

Eric Dumazet a écrit :
> Eric Dumazet a écrit :
>> Pekka J Enberg a écrit :
>>> Hi Robert,
>>>
>>> On Tue, 4 Nov 2008, Robert Richter wrote:
>>>> your patchset breaks oprofile on Intel Core 2 cpus. I could bisect the
>>>> bug for c493756..5951290. Please take a look at this and send me a fix.
>>>
>>> Unfortunately I don't have my machine with me right now so I can't
>>> test this, but don't we want something like this? Andi?
>>
>> Thanks a lot Pekka, this patch restores oprofile on my HP BL460c G1
>>
>> Tested-by: Eric Dumazet <dada1@cosmosbay.com>
>
> Update :
>
> After a while, no more NMI are delivered. No anymore samples.
>

Ingo asked me to test a revert of b99170288421c79f0c2efa8b33e26e65f4bb7fb8
(oprofile: Implement Intel architectural perfmon support)

Same problem than previous patch.

(doing a tbench 8 in background)

oprofile works a few seconds, then no more NMI / samples

# opcontrol --vmlinux=vmlinux --start
Using 2.6+ OProfile kernel interface.
Reading module info.
Using log file /var/lib/oprofile/samples/oprofiled.log
Daemon started.
Profiler running.
# grep NMI /proc/interrupts
NMI: 3102535 1009518 733819 2088857 1414146 703880 1229563 473603 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3490492 1009518 767878 2212917 1812791 1654826 2151141 473603 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3490492 1009518 767878 2212917 1812791 2188653 2671979 473603 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3490492 1009518 767878 2212917 1812791 2612789 2671979 473603 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3490492 1009518 767878 2212917 1812791 2612789 2671979 473603 Non-maskable interrupts
# opcontrol --deinit
Stopping profiling.
Killing daemon.
# grep NMI /proc/interrupts
NMI: 3490492 1009518 767878 2212917 1812791 2612789 2671979 473603 Non-maskable interrupts
# opcontrol --vmlinux=vmlinux --start
Using 2.6+ OProfile kernel interface.
Reading module info.
Using log file /var/lib/oprofile/samples/oprofiled.log
Daemon started.
Profiler running.
# grep NMI /proc/interrupts
NMI: 3730357 1265822 1174545 2485635 2257881 3082318 3078445 931068 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3730357 1265822 1573509 2485635 2469701 3512810 3477233 1143043 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3730357 1265822 2069149 2485635 2469701 3512810 3511350 1143043 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3730357 1265822 2069149 2485635 2469701 3512810 3511350 1143043 Non-maskable interrupts
# grep NMI /proc/interrupts
NMI: 3730357 1265822 2069149 2485635 2469701 3512810 3511350 1143043 Non-maskable interrupts

# grep . /dev/oprofile/*/* /dev/oprofile/*
/dev/oprofile/0/count:10000
/dev/oprofile/0/enabled:1
/dev/oprofile/0/event:60
/dev/oprofile/0/kernel:1
/dev/oprofile/0/unit_mask:0
/dev/oprofile/0/user:1
/dev/oprofile/1/count:0
/dev/oprofile/1/enabled:0
/dev/oprofile/1/event:0
/dev/oprofile/1/kernel:0
/dev/oprofile/1/unit_mask:0
/dev/oprofile/1/user:0
/dev/oprofile/stats/bt_lost_no_mapping:0
/dev/oprofile/stats/event_lost_overflow:83466
/dev/oprofile/stats/sample_lost_no_mapping:19174
/dev/oprofile/stats/sample_lost_no_mm:0
/dev/oprofile/backtrace_depth:0
grep: /dev/oprofile/buffer: Device or resource busy
/dev/oprofile/buffer_size:131072
/dev/oprofile/buffer_watershed:32768
/dev/oprofile/cpu_buffer_size:8192
/dev/oprofile/cpu_type:i386/core_2
grep: /dev/oprofile/dump: Invalid argument
/dev/oprofile/enable:1
/dev/oprofile/pointer_size:4

I tried with bigger buffer_size, same problem

opcontrol --vmlinux=vmlinux --cpu-buffer-size=65536 --buffer-size=1048576 --start

# grep . /dev/oprofile/*/* /dev/oprofile/*
/dev/oprofile/0/count:10000
/dev/oprofile/0/enabled:1
/dev/oprofile/0/event:60
/dev/oprofile/0/kernel:1
/dev/oprofile/0/unit_mask:0
/dev/oprofile/0/user:1
/dev/oprofile/1/count:0
/dev/oprofile/1/enabled:0
/dev/oprofile/1/event:0
/dev/oprofile/1/kernel:0
/dev/oprofile/1/unit_mask:0
/dev/oprofile/1/user:0
/dev/oprofile/stats/bt_lost_no_mapping:0
/dev/oprofile/stats/event_lost_overflow:1465392
/dev/oprofile/stats/sample_lost_no_mapping:117498
/dev/oprofile/stats/sample_lost_no_mm:20
/dev/oprofile/backtrace_depth:0
grep: /dev/oprofile/buffer: Device or resource busy
/dev/oprofile/buffer_size:1048576
/dev/oprofile/buffer_watershed:32768
/dev/oprofile/cpu_buffer_size:65536
/dev/oprofile/cpu_type:i386/core_2
grep: /dev/oprofile/dump: Invalid argument
/dev/oprofile/enable:1
/dev/oprofile/pointer_size:4