lkml.org 
[lkml]   [2019]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v1] arch_topology: Make cpu_capacity sysfs node as ready-only
From
Date
On 3/6/19 4:27 PM, Lingutla Chandrasekhar wrote:

[...]

> @@ -51,37 +50,7 @@ static ssize_t cpu_capacity_show(struct device *dev,
> static void update_topology_flags_workfn(struct work_struct *work);
> static DECLARE_WORK(update_topology_flags_work, update_topology_flags_workfn);
>
> -static ssize_t cpu_capacity_store(struct device *dev,
> - struct device_attribute *attr,
> - const char *buf,
> - size_t count)
> -{
> - struct cpu *cpu = container_of(dev, struct cpu, dev);
> - int this_cpu = cpu->dev.id;
> - int i;
> - unsigned long new_capacity;
> - ssize_t ret;
> -
> - if (!count)
> - return 0;
> -
> - ret = kstrtoul(buf, 0, &new_capacity);
> - if (ret)
> - return ret;
> - if (new_capacity > SCHED_CAPACITY_SCALE)
> - return -EINVAL;
> -
> - mutex_lock(&cpu_scale_mutex);

Since we can't write to cpu_scale from here anymore, we could get rid of
cpu_scale_mutex.
topology_normalize_cpu_scale()->topology_set_cpu_scale() is now only
called from:

[ 0.202628] topology_normalize_cpu_scale+0x28/0x30
[ 0.207529] init_cpu_topology+0x168/0x1e8
[ 0.211644] smp_prepare_cpus+0x2c/0x108
[ 0.215585] kernel_init_freeable+0x104/0x518
[ 0.219963] kernel_init+0x18/0x110
[ 0.223469] ret_from_fork+0x10/0x1c

for dts capacity-dmips-mhz properties

and

[ 3.130180] topology_normalize_cpu_scale.part.0+0xac/0xd0
[ 3.135619] init_cpu_capacity_callback+0x100/0x178
[ 3.140459] notifier_call_chain+0x5c/0xa0
[ 3.144522] blocking_notifier_call_chain+0x64/0x88
[ 3.149363] cpufreq_set_policy+0xd8/0x3c8
[ 3.153427] cpufreq_init_policy+0x78/0xc8

for cpufreq max frequency related adjustments to cpu capacity.

The mutex was introduced for the sysfs interface here:
https://lore.kernel.org/lkml/1468932048-31635-8-git-send-email-juri.lelli@arm.com

> - for_each_cpu(i, &cpu_topology[this_cpu].core_sibling)
> - topology_set_cpu_scale(i, new_capacity);
> - mutex_unlock(&cpu_scale_mutex);
> -
> - schedule_work(&update_topology_flags_work);
> -
> - return count;
> -}
> -
> -static DEVICE_ATTR_RW(cpu_capacity);
> +static DEVICE_ATTR_RO(cpu_capacity);
>
> static int register_cpu_capacity_sysctl(void)
> {
>

Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com>

on Arm64 Juno with v5.0

\
 
 \ /
  Last update: 2019-03-08 12:46    [W:1.881 / U:0.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site