Andrew Cooper
2011-Aug-12 13:54 UTC
[Xen-devel] [PATCH] IRQ fix incorrect logic in __clear_irq_vector (v2)
In the old code, tmp_mask is the cpu_and of cfg->cpu_mask and cpu_online_map. However, in the usual case of moving an IRQ from one PCPU to another because the scheduler decides its a good idea, cfg->cpu_mask and cfg->old_cpu_mask do not intersect. This causes the old cpu vector_irq table to keep the irq reference when it shouldn''t. This leads to a resource leak if a domain is shut down wile an irq has a move pending, which results in Xen''s create_irq() eventually failing with -ENOSPC when all vector_irq tables are full of stale references. v2: reuse tmp_mask to take account of online cpus Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> diff -r 1f08b380d438 -r bd106cc2aa65 xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c Wed Aug 10 14:43:34 2011 +0100 +++ b/xen/arch/x86/irq.c Fri Aug 12 14:54:11 2011 +0100 @@ -216,6 +216,7 @@ static void __clear_irq_vector(int irq) if (likely(!cfg->move_in_progress)) return; + cpus_and(tmp_mask, cfg->old_cpu_mask, cpu_online_map); for_each_cpu_mask(cpu, tmp_mask) { for (vector = FIRST_DYNAMIC_VECTOR; vector <= LAST_DYNAMIC_VECTOR; vector++) { _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2011-Aug-12 15:21 UTC
Re: [Xen-devel] [PATCH] IRQ fix incorrect logic in __clear_irq_vector (v2)
On 12/08/2011 14:54, "Andrew Cooper" <andrew.cooper3@citrix.com> wrote:> In the old code, tmp_mask is the cpu_and of cfg->cpu_mask and > cpu_online_map. However, in the usual case of moving an IRQ from one > PCPU to another because the scheduler decides its a good idea, > cfg->cpu_mask and cfg->old_cpu_mask do not intersect. This causes the > old cpu vector_irq table to keep the irq reference when it shouldn''t. > > This leads to a resource leak if a domain is shut down wile an irq has > a move pending, which results in Xen''s create_irq() eventually failing > with -ENOSPC when all vector_irq tables are full of stale references. > > v2: reuse tmp_mask to take account of online cpusNasty bug, nice fix! The extra field in irq_cfg sounds plausible to me -- I don''t mind adding it if it''s a nice cleanup. Thanks, Keir> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> > > diff -r 1f08b380d438 -r bd106cc2aa65 xen/arch/x86/irq.c > --- a/xen/arch/x86/irq.c Wed Aug 10 14:43:34 2011 +0100 > +++ b/xen/arch/x86/irq.c Fri Aug 12 14:54:11 2011 +0100 > @@ -216,6 +216,7 @@ static void __clear_irq_vector(int irq) > > if (likely(!cfg->move_in_progress)) > return; > + cpus_and(tmp_mask, cfg->old_cpu_mask, cpu_online_map); > for_each_cpu_mask(cpu, tmp_mask) { > for (vector = FIRST_DYNAMIC_VECTOR; vector <= LAST_DYNAMIC_VECTOR; > vector++) { > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Any time estimate for stable release Xen 4.1.2 ? If it''s possible. Boris. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
We should consider doing a first RC for it asap. Does anyone have anything specific to be backported that hasn''t already been done? E.g., toolstack stuff, Ian? -- Keir On 12/08/2011 16:40, "Boris Derzhavets" <bderzhavets@yahoo.com> wrote:> Any time estimate for stable release Xen 4.1.2 ? > If it''s possible. > > Boris. > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
>>> On 12.08.11 at 17:51, Keir Fraser <keir.xen@gmail.com> wrote: > We should consider doing a first RC for it asap. Does anyone have anything > specific to be backported that hasn''t already been done? E.g., toolstack > stuff, Ian?There should be two patches from me in your queue/inbox which I would both consider candidates. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 12/08/2011 17:03, "Jan Beulich" <JBeulich@novell.com> wrote:>>>> On 12.08.11 at 17:51, Keir Fraser <keir.xen@gmail.com> wrote: >> We should consider doing a first RC for it asap. Does anyone have anything >> specific to be backported that hasn''t already been done? E.g., toolstack >> stuff, Ian? > > There should be two patches from me in your queue/inbox which I > would both consider candidates."x86/PCI-MSI: properly determine VF BAR values" and "VT-d: don''t reject valid DMAR/ATSR tables on systems with multiple PCI segments"? -- Keir> Jan >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 12/08/11 16:51, Keir Fraser wrote:> We should consider doing a first RC for it asap. Does anyone have anything > specific to be backported that hasn''t already been done? E.g., toolstack > stuff, Ian? > > -- KeirI would suggest my irq fix from today as a candidate, if it gets through staging in time ~Andrew> On 12/08/2011 16:40, "Boris Derzhavets" <bderzhavets@yahoo.com> wrote: > >> Any time estimate for stable release Xen 4.1.2 ? >> If it''s possible. >> >> Boris. >> >> >> > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel-- Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer T: +44 (0)1223 225 900, http://www.citrix.com _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 12/08/2011 17:20, "Andrew Cooper" <andrew.cooper3@citrix.com> wrote:> > > On 12/08/11 16:51, Keir Fraser wrote: >> We should consider doing a first RC for it asap. Does anyone have anything >> specific to be backported that hasn''t already been done? E.g., toolstack >> stuff, Ian? >> >> -- Keir > > I would suggest my irq fix from today as a candidate, if it gets through > staging in timeYeah, that''s a definite one. Thanks, Keir> ~Andrew > >> On 12/08/2011 16:40, "Boris Derzhavets" <bderzhavets@yahoo.com> wrote: >> >>> Any time estimate for stable release Xen 4.1.2 ? >>> If it''s possible. >>> >>> Boris. >>> >>> >>> >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xensource.com >> http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
>>> On 12.08.11 at 18:18, Keir Fraser <keir.xen@gmail.com> wrote: > On 12/08/2011 17:03, "Jan Beulich" <JBeulich@novell.com> wrote: > >>>>> On 12.08.11 at 17:51, Keir Fraser <keir.xen@gmail.com> wrote: >>> We should consider doing a first RC for it asap. Does anyone have anything >>> specific to be backported that hasn''t already been done? E.g., toolstack >>> stuff, Ian? >> >> There should be two patches from me in your queue/inbox which I >> would both consider candidates. > > "x86/PCI-MSI: properly determine VF BAR values" and "VT-d: don''t reject > valid DMAR/ATSR tables on systems with multiple PCI segments"?Exactly. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel