[Skiboot] [PATCH 2/2] SBE: Rate limit timer requests
hegdevasant at linux.vnet.ibm.com
Tue Jan 5 20:15:10 AEDT 2021
On 12/17/20 12:29 PM, Vasant Hegde wrote:
> We schedule timer and wait for `timer expiry` interrupt from SBE.
> If we get new timer request which is lesser than inflight timer
> expiry value we can update timer (essentially sending new timer chip-op
> and SBE takes care of stoping inflight timer and scheduling new one).
> SBE runs at much slower speed than host CPU. If we do continuous timer
> update like below then SBE will be busy with handling PSU side timer
> message and will not get time to handle FIFO side requests.
> send timer chip-op -> Got ACK -> send timer chip-op
> Hence this patch limits number of continuous timer update and we will
> restart sending timer request as soon as we get timer expiry interrupt.
> Rate limit value (2) is suggested by SBE team.
> With this patch:
> If our timer requests are : 2ms, 1500us, 1000us and 800us
> (and requests are coming after sending each message)
> We will schedule timer for 2ms and then update timer for 1500us and 1000us
> (These update happens after getting ACK interrupt from SBE)
> We will not send 800us request.
> At 1000us we get `timer expiry` and we are good to send next timer requests
> (At this stage both 1000us and 800us timeout happens. We will schedule
> next timer request with timeout value 500us (1500-1000)).
Merged this series to master as of 2e654443050a.
More information about the Skiboot