Hi!

Am 26.11.2015 um 10:49 schrieb Anton Ivanov:
> Hi List, hi Richard,
> 
> While working on the EPOLL I managed to consistently reproduce and get down 
> to the bottom of the process in D state bug which you occasionally see with 
> UML. I recall asking
> Richard's help on this for the first time nearly 5 years ago ;-).

O_o

> It is extremely rare with the POLL based controller, timers and the stock UBD 
> drivers. As you make things go faster (anywhere in UML) it rares its ugly 
> head. So improving the IRQs,
> improving UBD itself, etc - all make it easier to trigger.
> 
> It looks like it is possible to end up in a state where the restart list is 
> not empty (an earlier transaction to the disk io thread failed with EAGAIN), 
> but with no pending IO on
> the UBD IPC thread fd. So the restart list is never re-triggered and the UBD 
> device ends up with a non-empty queue. The process that requested the IO ends 
> up in D state. Any other
> processes trying IO to the same disk join it. As the requests to the same UBD 
> queue up, ultimately, UML goes belly up.
> 
> Pinging the UML process with SIGIO does not help as there is no IO pending on 
> the fd. So it is not a lost interrupt. It somehow manages to race forming the 
> restart queue.
> 
> If, however, you have more than one UBD device IO to the other one unstucks 
> it by re-running the restart queue out of the ubd interrupt handler.
> 
> Once again - this is extremely rare at present, but possible (I have seen it 
> a few times over the last 5 years).
> 
> So it needs a viable fix or a workaround. I will have to get this one out of 
> the door first as it constantly gets in the way in debugging both the Epoll 
> and the signals stuff.

Okay, let's collect some facts first.
Is a guest or a host process in state D?
If it is a guest process, you can use "/proc/<pid>/stack" to find out where in 
the UML kernel it is blocking.
5 years ago UML didn't have this feature.

Thanks,
//richard

------------------------------------------------------------------------------
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to