[Skiboot] [PATCH] OCC: Do not call occ_do_load if hostservice LID load is not complete

Vaidyanathan Srinivasan svaidy at linux.vnet.ibm.com
Mon Mar 9 19:12:31 AEDT 2015


* Vasant Hegde <hegdevasant at linux.vnet.ibm.com> [2015-03-09 13:17:54]:

> On 03/09/2015 12:09 PM, Vaidyanathan Srinivasan wrote:
> > * Vasant Hegde <hegdevasant at linux.vnet.ibm.com> [2015-03-09 11:56:53]:
> > 
> 
> .../...
> 
> 
> >>  
> >>  	__occ_do_load(scope, dbob_id, seq_id);
> > 
> > This will get called from occ_poke_load_queue() after lid preload is
> > complete.
> > 
> > In addition to this fix, 
> > 
> > hservice_lid_load()
> >         if (list_empty(&hbrt_lid_list))	/* Should not happen */
> > 		hservices_lid_preload(); <<, Change to abort()
> 
> Vaidy,
> 
> So you don't want to try loading LID again here?

No, this situation should never happen since you ensure that the lid
would have been preloaded before calling __occ_do_load().
 
> Also better return error instead of abort?

No, this will return error into host services and that will be hard to
debug.

If pre-load failed despite attempts to queue and callback host service
after preload completes, then our code is broken and we need to abort
and fix it.

If we continue to load lid at this time, then we are back to
square-one where other load request for capi or initrd can come
inbetween and get stuck on running poller with lock held.

--Vaidy



More information about the Skiboot mailing list