On 2/25/19 10:26 AM, Jan Beulich wrote:
>>>> On 25.02.19 at 15:11, <andrew.coop...@citrix.com> wrote:
>> On 25/02/2019 13:11, Jan Beulich wrote:
>>> For Intel, afaics, we indeed produce a blank CPUID leaf in
>>> all cases, so the behavior looks reasonably consistent. I would
>>> question though whether a blank CPUID leaf / the absence of any
>>> counters wouldn't call for #UD instead of #GP(0).
>> RDPMC hasn't #UD'd in a quarter of a century, but does #GP in userspace
>> outside of developer profiling scenarios.
> I guess I could equally well say that RDPMC hasn't #GP'd for as long
> for indexes zero and one.
>
>>> Otherwise,
>>> along the lines of AMD, aren't the first two indexes uniformly valid
>>> for Intel?
>> No - its model specific behaviour.  The only difference for more modern
>> systems is that they have agreed on a common behaviour.
>>
>> And that is specifically why implementing 0's is a non-starter - it is
>> not a remotely sensible use of time to build enough infrastructure to
>> provide correct model-specific behaviour just for a corner case which
>> operating systems don't encounter in practice.
> No-one said you need to consider all cases. But returning zeros for
> the first four (AMD) or two (Intel) counters can hardly be that big
> of a problem.
>
> Anyway - I'm not going to fight this much more, as vPMU clearly
> isn't my primary area of interest. But I'll listen to further comments
> from Boris, wrt giving an eventual ack.

The most important thing IMO is to make MSR accesses and rdpmc be
consistent with each other.

As far as faulting on them as opposed to returning zero on reads and
dropping writes --- neither is right I think. The difference is that
with faulting a guest might suddenly start crashing. Not Linux since it
does rdmsrl_safe() in check_hw_exists() but who knows what Windows do,
for example.


-boris

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to