> > int arch_update_cpu_topology(void) > { > - return numa_update_cpu_topology(true); > + int changed = topology_changed; > + > + topology_changed = 0; > + return changed; > } >
Do we need Powerpc override for arch_update_cpu_topology() now? That topology_changed sometime back doesn't seem to have help. The scheduler atleast now is neglecting whether the topology changed or not. Also we can do away with the new topology_changed. > static void topology_work_fn(struct work_struct *work) > { > - rebuild_sched_domains(); > + lock_device_hotplug(); > + if (numa_update_cpu_topology(true)) > + rebuild_sched_domains(); > + unlock_device_hotplug(); > } Should this hunk be a separate patch by itself to say why rebuild_sched_domains with a changelog that explains why it should be under lock_device_hotplug? rebuild_sched_domains already takes cpuset_mutex. So I am not sure if we need to take device_hotplug_lock. > static DECLARE_WORK(topology_work, topology_work_fn); > > -static void topology_schedule_update(void) > +void topology_schedule_update(void) > { > - schedule_work(&topology_work); > + if (!topology_update_in_progress) > + schedule_work(&topology_work); > } > > static void topology_timer_fn(struct timer_list *unused) > { > + bool sdo = false; Is sdo any abbrevation? > + > + if (topology_scans < 1) > + bitmap_fill(cpumask_bits(&cpu_associativity_changes_mask), > + nr_cpumask_bits); Why do we need topology_scan? Just to make sure cpu_associativity_changes_mask is populated only once? cant we use a static bool inside the function for the same? > + > if (prrn_enabled && cpumask_weight(&cpu_associativity_changes_mask)) > - topology_schedule_update(); > - else if (vphn_enabled) { > + sdo = true; > + if (vphn_enabled) { Any reason to remove the else above? > if (update_cpu_associativity_changes_mask() > 0) > - topology_schedule_update(); > + sdo = true; > reset_topology_timer(); > } > + if (sdo) > + topology_schedule_update(); > + topology_scans++; > } Are the above two hunks necessary? Not getting how the current changes are different from the previous. -- Thanks and Regards Srikar Dronamraju