Re: weird semantics of cpu/*/msr

H. Peter Anvin
2002-10-10T22:49:40Z

Martin Waitz wrote:
> 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.
>

No, you should not.

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

-hpa