On 09/13/2016 03:52 PM, Luck, Tony wrote:
> On Tue, Sep 13, 2016 at 03:40:18PM -0700, Dave Hansen wrote:
>> Are you sure you don't want to add RDT to disabled-features.h?  You have
>> a config option for it, so it seems like you should also be able to
>> optimize some of these checks away when the config option is off.
> 
> Makefile looks like this:
> 
> obj-$(CONFIG_INTEL_RDT)        += intel_rdt.o intel_rdt_rdtgroup.o 
> intel_rdt_schemata.o
> 
> which seems to skip compiling all our code when the CONFIG
> option is off.
> 
> Our hooks to generic code look like:
> 
> +#ifdef CONFIG_INTEL_RDT
> +extern void rdtgroup_fork(struct task_struct *child);
> +extern void rdtgroup_exit(struct task_struct *tsk);
> +#else
> +static inline void rdtgroup_fork(struct task_struct *child) {}
> +static inline void rdtgroup_exit(struct task_struct *tsk) {}
> +#endif /* CONFIG_INTEL_RDT */
> 
> Does this disabled-features.h thing do something more?

If you have cpuid checks in common code, disabled-features.h can compile
them out if the config options are turned off.  For instance:

        if (cpu_feature_enabled(X86_FEATURE_PKU))
                foo();

is equivalent to:

#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
        if (boot_cpu_has(X86_FEATURE_PKU))
                foo();
#endif

But, if all the cpu_has(c, X86_FEATURE_CAT_L3) checks are confined to
files only compiled under CONFIG_INTEL_RDT then it won't do you much
good.  But, it's pretty simple to add things, and would help you out if
checks spread beyond intel_rdt*.c.

Reply via email to