Handle rdtscp
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 11 Mar 2013 22:10:49 +0000 (15:10 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 11 Mar 2013 22:10:49 +0000 (15:10 -0700)
commita5463913124263687f201d41b801a37b6f21b911
tree1c70d40e58fae6e7a6fd350d91bab4a536bfdb6c
parente1c0bb9551f59fbdf201e0413bb446253b0c9aba
Handle rdtscp

rdtscp has a bunch of benefits for measurements (stay tuned for more
commits), but it only works on more recent x86 hardware, and doesn't
work on my old core2 development machine running qemu.

x86 will now catch the rdtscp invalid opcode trap and fake the command.
This will not give accurate numbers for measurement.  During boot, look
for whether or not RDTSCP is supported if you are curious.

In the future, we could have a flag that replaces rdtscp calls with
rdtsc at compile time, if someone wanted more accurate measurements on
older hardware.  For now, I'm not too concerned with those older
machines when it comes to measuring performance.
kern/arch/i686/arch.h
kern/arch/i686/cpuinfo.c
kern/arch/i686/trap.c
kern/arch/riscv/arch.h
kern/arch/sparc/arch.h
user/parlib/include/i686/arch.h
user/parlib/include/riscv/arch.h
user/parlib/include/sparc/arch.h