[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 07/15] x86: implement set value flow for MBA
On 17-08-31 09:30:47, Roger Pau Monn� wrote: > On Thu, Aug 31, 2017 at 10:20:10AM +0800, Yi Sun wrote: > > On 17-08-30 09:31:04, Roger Pau Monn� wrote: > > > On Thu, Aug 24, 2017 at 09:14:41AM +0800, Yi Sun wrote: > > > > diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c > > > > index 4a0c982..ce82975 100644 > > > > --- a/xen/arch/x86/psr.c > > > > +++ b/xen/arch/x86/psr.c > > > > @@ -138,6 +138,12 @@ static const struct feat_props { > > > > > > > > /* write_msr is used to write out feature MSR register. */ > > > > void (*write_msr)(unsigned int cos, uint32_t val, enum > > > > psr_val_type type); > > > > + > > > > + /* > > > > + * check_val is used to check if input val fulfills SDM > > > > requirement. > > > > + * Change it to valid value if SDM allows. > > > > > > I'm not really sure it's a good idea to change the value to a valid > > > one, IMHO you should just check and print an error if the value is > > > invalid (and return false of course). > > > > > Per SDM, the HW has ability to automatically change the input value to what > > it > > wants. E.g: > > Linear mode: HW wants the input value be 10/20/30/.../90. But user inputs > > 15. > > Then, HW can automatically change it to 10. > > This seems like a very, very bad idea IMHO. What if I input 15 (which > is invalid), but I would rather prefer 20 instead of 10? > > I would very much prefer an error, so I can get to chose a valid value > myself instead of the hardware deciding on my back. > > > Even user inputs a value that does not fulfill HW requirement, HW can > > handle it. > > So, we do not need return error to user. Otherwise, user needs to know > > details > > of MBA. > > > > But the issue here is how we get the actual value and show it to user. > > There are > > two ways to do that: > > 1. When setting value, check and change it to valid one and save it to our > > cache. > > Instead of performing those checks manually, why not simply write the > value and read it back to see the one the hardware has actually > chosen (and cache it)? > So, I guess you prefer optioin 2, right? If so, do we need check if input value is valid? I see above comment that you prefer to return an error and leave the decision to user. > Is there any risk in writing an invalid value? If input value is no more than the thrtl_max got through CPUID, it is fine that HW can handle it. > > > 2. When getting value, call rdmsr to read the actual value back from HW. > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |