From: Yaoping R. <yruan@CS.Princeton.EDU> - 2004-04-28 22:20:26
|
Hi Phil: I am afraid the mechanism of 2.4 and 2.6 need to be switched. I noticed there's watershed under /dev/oprofile on 2.6 but not 2.4. Also, with my experiments, there's event buffer overflow under 2.4, which implies the kernel buffer is not flushed based on watermark trigger. But on 2.6, there's no event_lost_overflow, but there's sample_lost_overflow under /dev/oprofile/stats/cpu0. behavior is different on 2.6/2.4 - 2.4: when reaching a given threshold on number of used entry in buffer we wake up a task to flush samples to daemon, the watermark is defined as min(buffer_size / 8, 8192) - 2.6: there is a two level buffer, per cpu buffer are flushed to a high level buffer by a timer (and also when an exit() call occur iirc). I don't remember the details on how the high level buffer is flushed but iirc we never got problem from it. You must experiment a bit to find a right setting., remember to look at $ dmesg and /var/lib/oprofile/oprofiled.log (or /dev/oprofile/stats/*) How can I validate the measurement data? no event_lost_overflow and no sample_lost_overflow? (sample_lost_overflow appears under per CPU directory on 2.6) Thanks again -Yaoping |