[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.12] x86/vpmu: Improve documentation and parsing for vpmu=
On 04/02/2019 17:06, Jan Beulich wrote: >>>> On 04.02.19 at 15:58, <andrew.cooper3@xxxxxxxxxx> wrote: >> On 04/02/2019 14:44, Jan Beulich wrote: >>>>>> On 04.02.19 at 15:22, <andrew.cooper3@xxxxxxxxxx> wrote: >>>> On 04/02/2019 13:53, Jan Beulich wrote: >>>>>>>> On 04.02.19 at 12:41, <andrew.cooper3@xxxxxxxxxx> wrote: >>>>>> @@ -64,37 +54,37 @@ static DEFINE_PER_CPU(struct vcpu *, last_vcpu); >>>>>> static int __init parse_vpmu_params(const char *s) >>>>>> { >>>>>> const char *ss; >>>>>> + int rc = 0, val; >>>>>> + >>>>>> + do { >>>>>> + ss = strchr(s, ','); >>>>>> + if ( !ss ) >>>>>> + ss = strchr(s, '\0'); >>>>>> + >>>>>> + if ( (val = parse_bool(s, ss)) >= 0 ) >>>>>> + opt_vpmu_enabled = val; >>>>>> + else if ( !cmdline_strcmp(s, "bts") ) >>>>>> + vpmu_features |= XENPMU_FEATURE_INTEL_BTS; >>>>>> + else if ( !cmdline_strcmp(s, "ipc") ) >>>>>> + vpmu_features |= XENPMU_FEATURE_IPC_ONLY; >>>>>> + else if ( !cmdline_strcmp(s, "arch") ) >>>>>> + vpmu_features |= XENPMU_FEATURE_ARCH_ONLY; >>>>>> + else >>>>>> + rc = -EINVAL; >>>>>> >>>>>> - switch ( parse_bool(s, NULL) ) >>>>>> - { >>>>>> - case 0: >>>>>> - break; >>>>>> - default: >>>>>> - do { >>>>>> - ss = strchr(s, ','); >>>>>> - if ( !ss ) >>>>>> - ss = strchr(s, '\0'); >>>>>> - >>>>>> - if ( !cmdline_strcmp(s, "bts") ) >>>>>> - vpmu_features |= XENPMU_FEATURE_INTEL_BTS; >>>>>> - else if ( !cmdline_strcmp(s, "ipc") ) >>>>>> - vpmu_features |= XENPMU_FEATURE_IPC_ONLY; >>>>>> - else if ( !cmdline_strcmp(s, "arch") ) >>>>>> - vpmu_features |= XENPMU_FEATURE_ARCH_ONLY; >>>>>> - else >>>>>> - return -EINVAL; >>>>>> + s = ss + 1; >>>>>> + } while ( *ss ); >>>>>> + >>>>>> + /* Selecting bts/ipc/arch forces vpmu to enabled. */ >>>>>> + if ( vpmu_features ) >>>>>> + opt_vpmu_enabled = true; >>>>> If you want to retain original behavior, the condition here would need >>>>> to be "!rc && vpmu_features". It's not clear whether your modification >>>>> in this regard is intentional. >>>> Oh - that wasn't intentional. >>>> >>>> An alternative, now I think about it, is to just have the <bool>=false >>>> case clear vpmu_features. This is new behaviour, but it is more >>>> consistent with how other options work, and it wasn't expressable before. >>> Generally - yes. But what would e.g. "vpmu=off,ipc" end up doing in >>> your new model? >> >> The use of vpmu_features is somewhat weird. "bts" acts as an extra >> feature on top of "generally on", whereas "ipc" and "arch" act as >> restrictions on top of "generally on". > > Okay let's go that route then. Release-acked-by: Juergen Gross <jgross@xxxxxxxx> Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |