Messages in this thread | | | Date | Fri, 5 Jan 2018 16:28:17 +0100 | From | Andrea Arcangeli <> | Subject | Re: [PATCH 7/7] x86/microcode: Recheck IBRS features on microcode reload |
| |
Hello everyone,
On Fri, Jan 05, 2018 at 02:32:17PM +0100, Greg Kroah-Hartman wrote: > On Thu, Jan 04, 2018 at 07:50:33PM +0100, Borislav Petkov wrote: > > On Thu, Jan 04, 2018 at 07:34:30PM +0100, Andrea Arcangeli wrote: > > > void spec_ctrl_rescan_cpuid(void) > > > { > > > int cpu; > > > > > > if (use_ibp_disable) > > > return; > > > mutex_lock(&spec_ctrl_mutex); > > > if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL || > > > boot_cpu_data.x86_vendor == X86_VENDOR_AMD) { > > > /* detect spec ctrl related cpuid additions */ > > > init_scattered_cpuid_features(&boot_cpu_data); > > > > You don't need to noodle through all the scattered features - just the > > two bits. > > Does it really matter? Rescanning everything can't hurt here, and it > shouldn't be noticable in any boot time chart. I feel like arguing > about tiny stuff like this takes away from the obvious other problems > this whole patch series had :(
Yes IMHO it's not worth trying to filter those two bits, sharing the same function looked much cleaner.
It always helps to get patches to perfection so reviews welcome, but IMHO the best way forward is to release a kernel with PTI then in rc1 of the next apply ibrs ibpb solution for variant#2 in whatever shape and form (not necessarily immediately hyper optimized using static key for the entry code branching or static_cpu_has for once), so that it activates the microcode IBRS IBPB. Then we can optimize it in rc2 and later.
About reptoline, I think all reptoline talk it's a waste of time right now. Reptoline is an attempt to optimize for old CPUs only, it's hugely more complex to implement and deploy, and for future silicon it's useless. Even reptoline still requires IBRS and some CPU has no ibrs so it'd require yet another alternative there and repotline can't fix skylake anyway, reptoline requires new gcc code that doesn't even exist today to do a 2-way code emission with 2 different reptolines for different CPUS with no kernel code that exists that can reconcile it at boot time to patch it. There's no way to runtime disable it after applied, and AMD fam 0x10 0x12 0x16 also wouldn't get any benefit reptoline either, not just skylake wouldn't use it.
Thanks, Andrea
| |