[Skiboot] [PATCH] Add in new OPAL call to flush the L2 and L3 caches.

Alistair Popple alistair at popple.id.au
Tue Nov 13 16:27:51 AEDT 2018


> 
> An async completion might make more sense here. They're a little
> convoluted but the basic process is:
> 
> 1) pass an async_token (magic number) in the OPAL call
> 2) schedule a timer inside of OPAL to check on the async job
> 3) return from the opal call with OPAL_ASYNC_COMPLETION
> 4) check on the purge state in the timer's callback function
> 5) when the async job is done, return use opal_msg() to send an
> OPAL_MSG_ASYNC_COMP message.
> 
> The calling thread in linux can sleep while waiting for the async
> completion message. If you want an example have a look at
> core/i2c.c:opal_i2c_request() in skiboot and the
> drivers/i2c/busses/i2c-opal.c in linux.

Both Nick and Alexey have asked offline if this could just be made part of the 
NPU reset sequence. Technically I think it could be but needing to do it async 
complicates things. Oliver do you know if the existing PCI slot reset code has 
any mechanism to return something similar to an async completion? 

There was talk of having the NVIDIA driver call be able to call this sequence 
directly but doing it directly as part of the reset may mitigate that.

- Alistair
 
> > > > _______________________________________________
> > > > Skiboot mailing list
> > > > Skiboot at lists.ozlabs.org
> > > > https://lists.ozlabs.org/listinfo/skiboot
> 
> _______________________________________________
> Skiboot mailing list
> Skiboot at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot




More information about the Skiboot mailing list