Skip to contentSkip to conversation

weird semantics of cpu/*/msr

DISCUSSION Martin Waitz 2 participants 2 messages Oct 10, 2002

lore
Share & tools
lore
#0 lore raw

hi :)

the i386 msr driver is a bit strange:

* when reading/writing, it does not update the file position/msr register
* file position is used directly as msr register

that is, reads with count>8 do read from the same register multiple times, and writes overwrite themselves.

i would expect the following semantics:
* file position is (msr register * 8). position%8!=0 is invalid
* read/write updating file position.

that would make it possible to write/read multiple MSRs with one syscall, which is very handy when initializing P4 performance counters.

should i implement that behaviour?
of course it would break binary compatibility with existing uses of that drivers.
perhaps we would need a new location for the new api.

comments?

Signature · 10 lines
CU,		  / Friedrich-Alexander University Erlangen, Germany
Martin Waitz	//  [Tali on IRCnet]  [tali.home.pages.de] _________
______________/// - - - - - - - - - - - - - - - - - - - - ///
dies ist eine manuell generierte mail, sie beinhaltet    //
tippfehler und ist auch ohne grossbuchstaben gueltig.   /
			    -
Wer bereit ist, grundlegende Freiheiten aufzugeben, um sich 
kurzfristige Sicherheit zu verschaffen, der hat weder Freiheit 
noch Sicherheit verdient.
			Benjamin Franklin  (1706 - 1790)
#1 lore raw
Quoted 14 lines · Martin Waitz

hi :)

the i386 msr driver is a bit strange:

* when reading/writing, it does not update the file position/msr register
* file position is used directly as msr register

that is, reads with count>8 do read from the same register multiple times, and writes overwrite themselves.

i would expect the following semantics:
* file position is (msr register * 8). position%8!=0 is invalid
* read/write updating file position.

Quoted 8 lines

that would make it possible to write/read multiple MSRs with one syscall, which is very handy when initializing P4 performance counters.

should i implement that behaviour?
of course it would break binary compatibility with existing uses of that drivers.
perhaps we would need a new location for the new api.

No, you should not.

Simply put, the semantics were chosen for what typically makes sense w.r.t. MSRs.

-hpa