Re: [PATCH v2 4/7] x86/hyper-v: redirect reenlightment notifications on CPU offlining

From: Thomas Gleixner
Date: Sun Jan 14 2018 - 15:44:55 EST


On Wed, 13 Dec 2017, Vitaly Kuznetsov wrote:
> +static int hv_cpu_die(unsigned int cpu)
> +{
> + struct hv_reenlightenment_control re_ctrl;
> + int i;
> + static DEFINE_SPINLOCK(lock);
> +
> + if (hv_reenlightenment_cb == NULL)
> + return 0;
> +
> + /* Make sure the CPU we migrate to is not going away too */
> + spin_lock(&lock);

What kind of voodoo is this? CPU hotplug is serialized already...

> + rdmsrl(HV_X64_MSR_REENLIGHTENMENT_CONTROL, *((u64 *)&re_ctrl));
> + if (re_ctrl.target_vp == hv_vp_index[cpu]) {
> + /* Find some other online CPU */
> + for_each_online_cpu(i) {


cpu = cpumask_any_but(cpu_online_mask);

Hmm?

Thanks,

tglx