On Thu, Mar 13, 2025 at 10:21:51AM -0700, Yang Shi wrote: > On 3/13/25 3:41 AM, Mikołaj Lenczewski wrote: > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > > index fb8752b42ec8..3e4cc917a07e 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -453,6 +453,9 @@ > > arm64.no32bit_el0 [ARM64] Unconditionally disable the execution of > > 32 bit applications. > > > > + arm64.nobbml2 [ARM64] Unconditionally disable Break-Before-Make Level > > + 2 support > > Hi Miko, > > A question about the kernel boot parameter. Can this parameter be used > in early boot stage? A quick look at the code shows it should be ok, for > example, cpu_has_bti() is called in map_kernel(). But I'd like to double > check because my patchset needs to check this parameter in map_mem() to > determine whether large block mapping can be used or not. > > And a nit below. I will need to double check exactly when the arm64 software overrides are finalised, but as long as those values are finalised in / before (?) the early boot stage then it should be fine? Will reply again once I check and have an answer. > > +static inline bool bbml2_possible(void) > > +{ > > + return !arm64_test_sw_feature_override(ARM64_SW_FEATURE_OVERRIDE_NOBBML2); > > +} > > Can this be moved to cpufeature.h? My patch will use this, anyway I can > do it in my patchset. > > Thanks, > Yang I can do so. In fact, on second thought, I will probably extend this to also include the `IS_ENABLED(CONFIG_ARM64_BBML2_NOABORT)` check as well, and then move it to cpufeature.h, instead of folding said check into has_bbml2_noabort(). -- Kind regards, Mikołaj Lenczewski