|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 1/7] x86: detect and initialize Cache QoS Monitoring feature
On 03/12/13 12:54, Jan Beulich wrote:
>>>> On 03.12.13 at 12:46, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
>> This currently won't do what you expect, and to get regular Xen boolean
>> behaviour, you need tobe a little more cunning.
>>
>> Here is some completely untested code...
>>
>> static void __init parse_pqos_param(char *s)
>> {
>> char *ss;
>> char *val_str;
>> int val;
>>
>> do {
>> val = !!strncmp(s, "no-", 3);
>> if ( !val )
>> s += 3;
>>
>> ss = strchr(s, ',');
>> if ( ss )
>> *ss = '\0';
>>
>> val_str = strchr(s, '=');
>>
>> if ( !parse_bool(s) )
>> opt_pqos = 0;
> This won't either - parse_bool() returns the boolean value, or
> negative if the input didn't match any of the boolean tokens.
>
> Also, while I realize that you likely took this from elsewhere, I
> think we should stop further propagation of bad things (like
> allowing "pqos=no-true" or "pqos=no-cqm=on").
>
> And using = for both the top level separator and the sub-option
> ones looks odd to me generally too. I'd suggest using : instead.
>
> Jan
>
Hmm yes - perhaps that would be better, and more in line with the
current options such as dom0_mem
So something like this?
static void __init parse_pqos_param(char *s)
{
char *ss, *val_str;
int val;
do {
val = !!strncmp(s, "no-", 3);
if ( !val )
s += 3;
ss = strchr(s, ',');
if ( ss )
*ss = '\0';
val_str = strchr(s, ':');
if ( !parse_bool(s) )
opt_pqos = 0;
else if ( !strcmp(s, "cqm") )
opt_cqm = val;
else if ( val_str && !strcmp(s, "cqm_max_rmid") )
opt_cqm_max_rmid = simple_strtoul(val_str, NULL, 0);
s = ss + 1;
} while ( ss );
}
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |