Re: [PATCH v9 2/5] x86/cpuid: Add generic table for cpuid dependencies

Ingo Molnar
2017-10-13T05:30:10Z

* 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