I have read the perfmon documentation and source code. For several reasons, I do not think it is totally adequate in my situation.
This is an extension to the i386_vm86() syscall which will let you turn PCE on and off if you're the superuser.
Now that I think on this a bit more, a sysctl might be a better place to put this, but it seemed to belong with the i386_vm86() bits, rather than polluting initcpu.c right away.
Is vm86 related to virtual-8086 mode? Probably not... What does vm86 stand for? Virtual machine?
Mind you, if you're going to hack perfmon, perhaps putting this in initcpu isn't such a bad idea after all, with a loader tunable instead. That way perfmon can pickup on the tunable when attached by nexus during boot.
I am tempted to remove perfmon from the kernel, and write a kernel module for Athlon and another one for NetBurst.
Can a kernel module catch #UD (Invalid Opcode) and #GP (General Protection) exceptions generated from within the kernel module itself? Can I use sigaction(2)?
Can a kernel module catch a specific #GP exception generated from user land? Can I register a signal handler with sigaction(2)?
BTW, are performance-monitoring counters saved and restored on a context switch?
Shill
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"