Re: [PATCH v6 5/9] x86/sysctl: Add sysctl for ITMT scheduling feature

From: Thomas Gleixner
Date: Wed Oct 26 2016 - 06:53:25 EST


On Thu, 20 Oct 2016, Tim Chen wrote:
> +static int sched_itmt_update_handler(struct ctl_table *table, int write,
> + void __user *buffer, size_t *lenp, loff_t *ppos)

Please align the arguments proper

static int
sched_itmt_update_handler(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)

> +{
> + int ret;
> + unsigned int old_sysctl;

unsigned int old_sysctl;
int ret;

Please. It's way simpler to read.

> -void sched_set_itmt_support(void)
> +int sched_set_itmt_support(void)
> {
> mutex_lock(&itmt_update_mutex);
>
> + if (sched_itmt_capable) {
> + mutex_unlock(&itmt_update_mutex);
> + return 0;
> + }
> +
> + itmt_sysctl_header = register_sysctl_table(itmt_root_table);
> + if (!itmt_sysctl_header) {
> + mutex_unlock(&itmt_update_mutex);
> + return -ENOMEM;
> + }
> +
> sched_itmt_capable = true;
>
> + /*
> + * ITMT capability automatically enables ITMT
> + * scheduling for small systems (single node).
> + */
> + if (topology_num_packages() == 1)
> + sysctl_sched_itmt_enabled = 1;

I really hate this. This is policy and the kernel should not impose
policy. Why would I like to have this enforced on my single socket XEON
server?

> + if (sysctl_sched_itmt_enabled) {

Why would sysctl_sched_itmt_enabled be true at this point, aside of the
above policy imposement?

Thanks,

tglx