Yes, it works. There is only problem with VMware - I wrote patch
which disables LVTPC NMI delivery when running VMware (like
LVT0/1 NMI delivery is disabled on normal SMP/IOAPIC kernel (as VMware
uses its own address space when running emulation, it does not want
NMI delivery during switching address spaces)) and I found that after
I reenable delivery, nothing happens :-( Performance counters aparently
just delivery interrupt only for one cycle when counter value is
FFFFFFFFFFFFFFFF. And apparently setting delivery mode to edge triggered
does not work for LVTPC (or maybe that disabling LVTPC delivery just causes
all events to be dropped, even in edgemode). So first time when VMware
runs when NMI should be triggered, you lost it. And as next come after
2^48 CPU clocks, it disables NMI watchdog almost forever (it is not
problem on ia32, as 2^32 cycles passes in few seconds after you exit
from VMware).
As workaround, I tried to program LVTPC as fixed delivery to 2, but this
caused 'invalid vector received' error :-( So for now UP K7 NMI watchdog
and vmware are incompatible. Maybe I should try to revector it for
SMI delivery, because of SMI handler runs in its own address space. But it
is incompatible with APM and ACPI, so...
Best regards,
Petr Vandrovec
vandrove@vc.cvut.cz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/