Messages in this thread | | | Subject | Re: [Bugfix 4/5] x86/irq: Fix a race condition between vector assigning and cleanup | From | Joe Lawrence <> | Date | Tue, 1 Dec 2015 17:46:35 -0500 |
| |
On 11/30/2015 03:09 AM, Jiang Liu wrote: > Joe Lawrence <joe.lawrence@stratus.com> reported an use after release > issue related to x86 IRQ management code. Please refer to following > link for more information: > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1026840.html > > Thomas pointed out that it's caused by a race condition between > __assign_irq_vector() and __send_cleanup_vector(). Based on Thomas' > draft patch, we solve this race condition by: > 1) Use move_in_progress to signal that an IRQ cleanup IPI is needed > 2) Use old_domain to save old CPU mask for IRQ cleanup > 3) Use vector to protect move_in_progress and old_domain > > This bugfix patch also helps to get rid of that atomic allocation in > __send_cleanup_vector(). > > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> > ---
[ ... snip ... ]
Jiang, Thomas,
Last night I ran with Jiang's five-patch-set on top of 4.3. Tests started with regular sysfs device removal of mpt HBAs, then later I added disk stress (the disks are software RAID1 across the HBAs) .. no issues.
I'll kick off some tougher surprise device removal tests tonight to further kick the tires.
-- Joe
| |