|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for 4.5] x86/VPMU: Clear last_vcpu when destroying VPMU
>>> On 12.12.14 at 22:20, <boris.ostrovsky@xxxxxxxxxx> wrote:
> --- a/xen/arch/x86/hvm/vpmu.c
> +++ b/xen/arch/x86/hvm/vpmu.c
> @@ -247,10 +247,32 @@ void vpmu_initialise(struct vcpu *v)
> }
> }
>
> +static void vpmu_clear_last(void *arg)
> +{
> + struct vcpu *v = (struct vcpu *)arg;
Please drop this pointless cast, or perhaps the entire variable, as ...
> +
> + if ( this_cpu(last_vcpu) == v )
... you don't really need it to be of "struct vcpu *" type - "void *"
is quite fine for a comparison.
> + this_cpu(last_vcpu) = NULL;
> +}
> +
> void vpmu_destroy(struct vcpu *v)
> {
> struct vpmu_struct *vpmu = vcpu_vpmu(v);
>
> + if ( vpmu_is_set(vpmu, VPMU_CONTEXT_ALLOCATED) )
> + {
> + /* Need to clear last_vcpu in case it points to v */
> + if ( vpmu->last_pcpu != smp_processor_id() )
> + on_selected_cpus(cpumask_of(vpmu->last_pcpu),
> + vpmu_clear_last, (void *)v, 1);
The cast here is pointless too. But considering your subsequent
reply this code may go away altogether anyway; if it doesn't,
explaining (in the commit message) why you need to use an IPI
here would seem necessary.
> + else
> + {
> + local_irq_disable();
> + vpmu_clear_last((void *)v);
And another pointless cast.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |