[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.