Messages in this thread | | | Date | Fri, 13 Oct 2017 07:30:05 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH v9 2/5] x86/cpuid: Add generic table for cpuid dependencies |
| |
* Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, 12 Oct 2017, Ingo Molnar wrote: > > > > * Andi Kleen <andi@firstfloor.org> wrote: > > > > > --- /dev/null > > > +++ b/arch/x86/kernel/cpu/cpuid-deps.c > > > @@ -0,0 +1,109 @@ > > > +/* Declare dependencies between CPUIDs */ > > > +#include <linux/kernel.h> > > > +#include <linux/init.h> > > > +#include <linux/module.h> > > > +#include <asm/cpufeature.h> > > > + > > > +struct cpuid_dep { > > > + unsigned short feature; > > > + unsigned short depends; > > > +}; > > > > Why are these 16-bit fields? 16-bit data types should be avoided as much as > > possible, as they generate suboptimal code. > > I was looking at that as well and decided that we preferrably have a > compressed data structure. The code which walks the table is hardly > performance critical and the difference in text size is marginal.
So the code should all be __init (once that is fixed), hence data and text size literally does not matter - it gets freed.
So the only effect the 16-bit variables have is (marginally) worse boot times.
Thanks,
Ingo
| |