[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v8 for-xen-4.5 2/2] dpci: Replace tasklet with an softirq (v8)



>>> On 27.10.14 at 22:13, <konrad.wilk@xxxxxxxxxx> wrote:
> +    /*
> +     * A crude 'while' loop with us dropping the spinlock and giving
> +     * the softirq_dpci a chance to run.
> +     * We MUST check for this condition as the softirq could be scheduled
> +     * and hasn't run yet. Note that this code replaced tasklet_kill which
> +     * would have spun forever and would do the same thing (wait to flush out
> +     * outstanding hvm_dirq_assist calls.
> +     */
> +    if ( pt_pirq_softirq_active(pirq_dpci) )
> +    {
> +        spin_unlock(&d->event_lock);
> +        if ( pirq_dpci->cpu >= 0 && pirq_dpci->cpu != smp_processor_id() )
> +        {
> +            /*
> +             * The 'raise_softirq_for' sets the CPU and raises the softirq 
> bit
> +             * so we do not need to set the target CPU's HVM_DPCI_SOFTIRQ.
> +             */
> +            smp_send_event_check_cpu(pirq_dpci->cpu);
> +            pirq_dpci->cpu = -1;
> +        }
> +        cpu_relax();
> +        goto restart;
> +    }

As said in an earlier reply to Andrew, I think this open coding goes
too far. And with the softirq known to have got sent, I also don't
really see why it needs to be resent _at all_ (and the comments
don't explain this either).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.