Messages in this thread | | | Date | Fri, 8 May 2015 09:51:11 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 2/2] x86: speed cpu_up by quirking cpu_init_udelay |
| |
* Len Brown <lenb@kernel.org> wrote:
> From: Len Brown <len.brown@intel.com> > > Modern processor familes are on a white-list to remove > the costly cpu_init_udelay 10000. Unknown processor families > get the traditional 10ms delay in cpu_up(). > > This seemed more efficient than forcing modern processors > to exhaustively search a black-list having all the old > processor families that should have a 10ms delay. > For not only are new processor familes infrequently added, > the white list also allows a delay other than 0, if needed.
> static unsigned int init_udelay = UDELAY_10MS_DEFAULT; > > +static const struct x86_cpu_id init_udelay_ids[] = { > + { X86_VENDOR_INTEL, 0x6, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0x16, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0x15, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0x14, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0x12, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0x11, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0x10, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + { X86_VENDOR_AMD, 0xF, X86_MODEL_ANY, X86_FEATURE_ANY, 0 }, > + {} > +};
So since especially AMD likes to iterate the family upwards, why not make this a simple open ended check:
if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL && boot_cpu_data.x86 >= 6 || boot_cpu_data.x86_vendor == X86_VENDOR_AMD && boot_cpu_data.x86 >= 15) {
... 0 delay ... }
... which is much smaller and more future proof?
Thanks,
Ingo
| |