Message ID | 1490965679-619-9-git-send-email-Wei.Chen@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Wei, On 31/03/17 14:07, Wei Chen wrote: > In the later patches of this series, we want to use the alternative > patching framework to avoid checking serror_op in every entries. > So we define a new cpu feature "SKIP_CHECK_PENDING_VSERROR" for > serror_op. When serror_op is not equal to SERROR_DIVERSE, this > feature will be set to cpu_hwcaps. > > Currently, the default serror_op is SERROR_DIVERSE, if we want to > change the serror_op value we have to place the serror parameter > in command line. It seems no problem to update cpu_hwcaps directly > in the serror parameter parsing function. > > While the default option will be diverse today, this may change in the > future. So we introduce this initcall to guarantee the cpu_hwcaps can be > updated no matter the serror parameter is placed in the command line > or not. > > Signed-off-by: Wei Chen <Wei.Chen@arm.com> > Acked-by: Julien Grall <julien.grall@arm.com> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > v2->v3 > 1. Rewrite the commit message to make it easer to understand. > 2. Add Julien's Acked-by tag and Stefano's Reviewed-by tag. > --- > xen/arch/arm/traps.c | 9 +++++++++ > xen/include/asm-arm/cpufeature.h | 3 ++- > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c > index 76cda59..9d4ee39 100644 > --- a/xen/arch/arm/traps.c > +++ b/xen/arch/arm/traps.c > @@ -141,6 +141,15 @@ static void __init parse_serrors_behavior(const char *str) > } > custom_param("serrors", parse_serrors_behavior); > > +static int __init update_serrors_cpu_caps(void) > +{ > + if ( serrors_op != SERRORS_DIVERSE ) > + cpus_set_cap(SKIP_CHECK_PENDING_VSERROR); I have some comment regarding the name of the feature (see patch #18). Cheers,
Hi Julien, On 2017/3/31 22:48, Julien Grall wrote: > Hi Wei, > > On 31/03/17 14:07, Wei Chen wrote: >> In the later patches of this series, we want to use the alternative >> patching framework to avoid checking serror_op in every entries. >> So we define a new cpu feature "SKIP_CHECK_PENDING_VSERROR" for >> serror_op. When serror_op is not equal to SERROR_DIVERSE, this >> feature will be set to cpu_hwcaps. >> >> Currently, the default serror_op is SERROR_DIVERSE, if we want to >> change the serror_op value we have to place the serror parameter >> in command line. It seems no problem to update cpu_hwcaps directly >> in the serror parameter parsing function. >> >> While the default option will be diverse today, this may change in the >> future. So we introduce this initcall to guarantee the cpu_hwcaps can be >> updated no matter the serror parameter is placed in the command line >> or not. >> >> Signed-off-by: Wei Chen <Wei.Chen@arm.com> >> Acked-by: Julien Grall <julien.grall@arm.com> >> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> >> --- >> v2->v3 >> 1. Rewrite the commit message to make it easer to understand. >> 2. Add Julien's Acked-by tag and Stefano's Reviewed-by tag. >> --- >> xen/arch/arm/traps.c | 9 +++++++++ >> xen/include/asm-arm/cpufeature.h | 3 ++- >> 2 files changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c >> index 76cda59..9d4ee39 100644 >> --- a/xen/arch/arm/traps.c >> +++ b/xen/arch/arm/traps.c >> @@ -141,6 +141,15 @@ static void __init parse_serrors_behavior(const >> char *str) >> } >> custom_param("serrors", parse_serrors_behavior); >> >> +static int __init update_serrors_cpu_caps(void) >> +{ >> + if ( serrors_op != SERRORS_DIVERSE ) >> + cpus_set_cap(SKIP_CHECK_PENDING_VSERROR); > > I have some comment regarding the name of the feature (see patch #18). > I will update it and send a new version. > Cheers, > >
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 76cda59..9d4ee39 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -141,6 +141,15 @@ static void __init parse_serrors_behavior(const char *str) } custom_param("serrors", parse_serrors_behavior); +static int __init update_serrors_cpu_caps(void) +{ + if ( serrors_op != SERRORS_DIVERSE ) + cpus_set_cap(SKIP_CHECK_PENDING_VSERROR); + + return 0; +} +__initcall(update_serrors_cpu_caps); + void init_traps(void) { /* Setup Hyp vector base */ diff --git a/xen/include/asm-arm/cpufeature.h b/xen/include/asm-arm/cpufeature.h index c0a25ae..ec3f9e5 100644 --- a/xen/include/asm-arm/cpufeature.h +++ b/xen/include/asm-arm/cpufeature.h @@ -40,8 +40,9 @@ #define ARM32_WORKAROUND_766422 2 #define ARM64_WORKAROUND_834220 3 #define LIVEPATCH_FEATURE 4 +#define SKIP_CHECK_PENDING_VSERROR 5 -#define ARM_NCAPS 5 +#define ARM_NCAPS 6 #ifndef __ASSEMBLY__