[Skiboot] [RFC PATCH 6/6] libflash: add blocklevel_raw_prepare()

Vasant Hegde hegdevasant at linux.vnet.ibm.com
Fri Mar 1 16:16:44 AEDT 2019


On 03/01/2019 06:06 AM, Stewart Smith wrote:
> Vasant Hegde <hegdevasant at linux.vnet.ibm.com> writes:
> 
>> On 02/28/2019 11:48 AM, Stewart Smith wrote:
>>> The logic of a prepare call is to move the window (or at least start the
>>> process of moving the window) so that when a read/write/erase call is
>>> made, we don't have to wait for a IPMI round trip. >
>>> For non-hiomap backends, one could use similar logic.
>>>
>>> ---
>>> Not Signed-off-by yet as I'm totally not convinced
>>
>> Even I'm not convinced about this approach. Its still error prone.
>> May be best is to split read/write/erase call to two parts (one initiates
>> request to BMC
>> and second one does post processing after getting data from BMC).
>> That way we can remove synchronous message completely from these
>> paths.
> 
> Yeah, that was my thought as well... It involves more surgery to
> libflash though, which is annoying.


Unfortunately yes. May be its better to split this patchset into two.
  - Prepare core/flash.c code to asynchronous events (may be first four patch?)
  - Then change libflash code.



.../..

>>
>> This still uses synchronous path. So not going to help much.
> 
> Yeah, it doesn't make a huge impact, but amazingly enough, there is
> *some* improvement (tens of ms)... but it needs work.

Also if we use asynchronous method, then it will completely avoid "Hardlock up 
issues".

-Vasant



More information about the Skiboot mailing list