Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining triggered inactive device IRQ interrruption

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Gary Hade
Date: Thursday, April 9, 2009 - 5:53 pm

On Thu, Apr 09, 2009 at 03:38:04PM -0700, Yinghai Lu wrote:

Correct.  It is updated during the remove_cpu_from_maps()
call from cpu_disable_common() that preceeds the fixup_irqs()
call from cpu_disable_common().


Also correct but it should be noted that irq_complete_move()
executes on an IRQ affinity move destination CPU which, depending
on how quickly the device generates the next IRQ, may not happen
before the IRQ affinity move destination CPU(s) are offlined.


If you are suggesting that the send_cleanup_vector() work
deferred to an IRQ affinity move destination CPU be performed
instead by code running on the CPU being removed, I considered
that before discovering the justification for the current design.
   http://lkml.org/lkml/2007/2/23/92

I also played around with using send_IPI_mask() to send
cfg->vector to the IRQ affinity move destination CPU(s) to
assure that cfg->move_in_progress would get cleared before
those CPU(s) were offlined.  This appeared to work, however,
it seemed like a hack and I wasn't sure how to deal with the
unhandled interrupts.

I then discovered that send_cleanup_vector() wasn't sending
IRQ_MOVE_CLEANUP_VECTOR to any CPU when all CPUs in the old
domain were offline.  This led me to the proposed fix.

Gary

-- 
Gary Hade
System x Enablement
IBM Linux Technology Center
503-578-4503  IBM T/L: 775-4503
garyhade@us.ibm.com
http://www.ibm.com/linux/ltc

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining tri ..., Gary Hade, (Thu Apr 9, 5:53 pm)
Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining tri ..., Eric W. Biederman, (Fri Apr 10, 3:02 pm)
Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining tri ..., Eric W. Biederman, (Sat Apr 11, 4:01 am)
Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining tri ..., Eric W. Biederman, (Sun Apr 12, 12:32 pm)
Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining tri ..., Pallipadi, Venkatesh, (Mon Apr 13, 10:41 am)
Re: [PATCH 2/3] [BUGFIX] x86/x86_64: fix CPU offlining tri ..., Eric W. Biederman, (Mon Apr 13, 11:50 am)
[PATCH] irq, x86: Remove IRQ_DISABLED check in process con ..., Pallipadi, Venkatesh, (Mon Apr 13, 3:20 pm)
Re: [PATCH] irq, x86: Remove IRQ_DISABLED check in process ..., Eric W. Biederman, (Mon Apr 13, 6:40 pm)
[tip:irq/urgent] x86, irq: Remove IRQ_DISABLED check in pr ..., tip-bot for Pallipad ..., (Tue Apr 14, 7:06 am)