Description of problem: I tried to use the MACHINE_CLEAR event on a Xeon to monitor memory ordering related machine clears. op_help claims this is mask 0x40, but when I use that, I get no samples. The Intel manuals say that the MOCLEAR bit is bit 2, so I tried 0x4, but oprofile wouldn't let me: the daemon fails to start. So this is really 3 separate bugs: 1. Information for Xeon MACHINE CLEAR unit masks is wrong (the bit assignment for SMCLEAR looks wrong too). 2. Should the daemon really refuse to start if it thinks the unit mask is inappropriate? How dangerous is that? 3. Shouldn't this error (or preferably warning) appear at opcontrol --setup instead of daemon start? Version-Release number of selected component (if applicable): oprofile-devel-0.5.4-20 How reproducible: every time Steps to Reproduce: 1. opcontrol --setup --no-vmlinux --ctr3-event=MACHINE_CLEAR --ctr3-count=100000 --ctr3-unit-mask=0x4 2. opcontrol --start-daemon Actual results: oprofiled: ctr3: 0x04: invalid unit mask for cpu P4 / Xeon Expected results: collection of data Additional info:
1. The unit masks for machine_clear don't agree with the latest intel documentation. This has been corrected in oprofile-0.5.4-22. 2. I haven't seen any warning to the effect "This performance bit will cause the machine to lock up." 3. opcontrol --setup should probably give the error (warning) message instead of the opcontrol --start. Whether it should be a warning or an error message is up for debate. Should go through and check the other unit masks to verify that there are not other discrapancies.