[ofa-general] Re: [PATCH] opensm: osm_state_mgr.c - stop idle queue processing if heavy sweep requested

Sasha Khapyorsky sashak at voltaire.com
Thu Dec 20 09:06:32 PST 2007


On 18:41 Thu 20 Dec     , Yevgeny Kliteynik wrote:
>  Sasha Khapyorsky wrote:
> > On 09:40 Wed 19 Dec     , Yevgeny Kliteynik wrote:
> >>  Sasha Khapyorsky wrote:
> >>> Hi Yevgeny,
> >>> On 15:33 Mon 17 Dec     , Yevgeny Kliteynik wrote:
> >>>> If a heavy sweep requested during idle queue processing, OSM continues
> >>>> to process it till the end and only then notices the heavy sweep 
> >>>> request.
> >>>> In some cases this might leave a topology change unhandled for several
> >>>> minutes.
> >>> Could you provide more details about such cases?
> >>> As far as I know the idle queue is used only for multicast re-routing.
> >>> If so, it is interesting by itself why it takes minutes and where. Is
> >>> where MCG join/leave storm?
> >>  Exactly. The problem was discovered on a big cluster with hundreds of 
> >> mcast  groups,
> >>  when there is some massive change in the subnet (like rebooting hundreds 
> >> of  nodes).
> > Ok, then proposed patch looks like half solution for me.
> > During mcast join/leave storm idle queue will be filled with requests to
> > rebuild mcast routing. OpenSM will process it one by one (and this will
> > take a lot of time) instead of process all pended mcast groups in one
> > run. I think it is first improvement needed here.
> > Even with such improvement we will not be able to control the order of
> > heavy sweep/mcast join requests, so basically idea of breaking idle
> > queue processing looks fine for me, but it is not all what should be
> > done here. Heavy sweep by itself recalculates mcast routing for all
> > existing groups, it should invalidate all pended mcast rerouting
> > requests instead of continuing idle queue processing after heavy
> > sweep. Make sense?
> 
>  OK, makes sense.
>  So bottom line, when breaking the idle queue processing because of immediate
>  sweep request, state manager should just purge the whole idle queue and then
>  start the new heavy sweep.

Yes, it is one patch, another expected patch for improving mcast
join requests/node reboot storm handling by OpenSM is recalculating mcast
routing for more than one mcast groups (actually I think requested mcast
groups should be queued in the list and mcast re-routing request merged
+ some trivial processor function in osm_mcast_mgr.c). Maybe whole idle
queue mechanism can be killed as useless, then this will impact heavy
sweep related patch.

Sasha



More information about the general mailing list