On Tue, 30 Sep 2003 00:18:19 +0200 Shill <[EMAIL PROTECTED]> probably wrote:
> Hello all, > > I've been playing with my Athlon's timestamp counter for a while, > and I would like to experiment with the performance-monitoring > counters now. > > I can execute the RDTSC instruction from ring 3 because the TSD > (TimeStamp Disable) bit in CR4 (Control Register 4) is cleared. > > However, I am not allowed to use the RDPMC instruction from ring 3 > because the PCE (Performance-monitoring Counters Enable) bit is not set. You can do it with /dev/perfmon. man 4 perfmon. > Is there a reason (security? performance? other?) why FreeBSD does > not set PCE at boot time? > > On a related subject, is there a way for a kernel module to catch a > general-protection fault caused by an application trying to execute > RDMSR or WRMSR, and have the kernel module execute the instruction > for the application? Or is it cleaner to register two new system > calls to achieve the same thing? That would (probably) require adding superuser-configurable permissions to read/write to a specific MSR, as some of them are critical. I doubt it's worth creating extra device nodes, and I wonder if there's a "cleaner" way to do that. -- DoubleF The simpler the instruction, e.g. "press here", the more difficult it will be to open the package.
pgp00000.pgp
Description: PGP signature