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

[Xen-devel] [question] will softirq handler potentially be called many times?



Hi,

I see the __do_softirq is called when ! in_atomic(), which means
potentially __do_softirq may be interrupted by trap, exception,
interrupt, etc, so seems softirq handler may be executed many times?

For example, if interrupt happens after i =
find_first_set_bit(pending), the same softirq hander will be called
twice as the do_softriq will be called after all interrupt handler
returned, and the pending bit has not been cleared yet when first
do_softirq was called.

static void __do_softirq(unsigned long ignore_mask)
{
    ......
    for ( ; ; )
    {
        ......
        i = find_first_set_bit(pending);
                                                   <- interrupt happens
        clear_bit(i, &softirq_pending(cpu));
        (*softirq_handlers[i])();
    }
}

-cody

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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