On Sep 24, 2013, at 8:54 AM, Jeffrey Altman <[email protected]> 
wrote:

> On 9/23/2013 3:52 PM, Mark Vitale wrote:
>> 2) Volume releases suffer from poor performance and occasionally fail with 
>> timeouts.
>>  - root cause was heavier-than-normal vlserver load (perhaps caused by disk 
>> performance slowdowns); this starved LWP IOMGR, which in turn prevented LWP 
>> rx_Listener from being dispatched (priority inversion), leading to a grossly 
>> delayed rxevent queue.
> 
> Did you intend to write "rx_Listener" in the above sentence or did you
> mean the rx_Event thread?  
In the LWP case I did mean to type rx_Listener, which is the "name" of the LWP. 
 In LWP, there are not separate threads for listener and event handler logic; 
they run alternately in the same (listener) thread. The actual code it runs is 
rx_ListenerProc() -> rxi_ListenerProc(), which loops and alternately calls 
rxevent_RaiseEvents() and IOMGR_Select().  In this case the high-priority 
listener thread is blocked on IOMGR_Select(), which is blocked on the low 
priority IOMGR thread to be dispatched, which in turn is blocked by medium 
priority worker threads.  In this situation, rxevent_RaiseEvents() will never
be invoked until ALL the worker threads are no longer runnable.

--
Mark Vitale
[email protected]

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to