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

Re: [Xen-devel] Interrupt code cleanup [RFC]

On Wed, Aug 31, 2011 at 4:52 PM, Andrew Cooper
<andrew.cooper3@xxxxxxxxxx> wrote:
> Are there any areas people have noticed where the irq code is limited
> and could be improved?

The locking seems a bit strange too, and doesn't seem to be documented
anywhere.  For instance, in irq.c:__clear_irq_vector(),
cfg->move_in_progress is protected by vector_lock.  But in
io_apic.c:send_cleanup_vector(), cfg->move_in_progress is read without
any locks, and cfg->move_cleanup_count is written without any locks,
or any memory barriers; but in smp_irq_move_cleanup_interrupt(),
cfg->move_cleanup_count is protected by desc->lock.

It may be that this is all OK and carefully thought out, but it's a
bit hard to believe.  And even if it were carefully thought out, if
it's not either obvious or documented, at some point someone will make
a change that breaks the delicately balanced invariants.

I'm taking a look at that now...


Xen-devel mailing list



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