bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: VirtualBox Hangs Pre-Init Due To Ext2FS Fault


From: James Clarke
Subject: Re: VirtualBox Hangs Pre-Init Due To Ext2FS Fault
Date: Sun, 19 Jul 2015 14:25:14 +0100

Yeah, I tried inhibiting both buckets, but the paging RPCs still got through, 
so my guess was that libports's inhibit/resume methods weren't able to deal 
with libpager's own threads. The thing is I don't think we currently keep track 
of any reference to the main/worker threads, as pager_start_workers just takes 
a bucket and returns void. Is there a way we can instead make the main thread 
and/or workers able to block ports_inhibit_X_rpcs like normal RPC handlers and 
be cancelled etc? If possible I think that would be a cleaner solution.

James

> On 19 Jul 2015, at 13:50, Justus Winter <4winter@informatik.uni-hamburg.de> 
> wrote:
> 
> Hello James :)
> 
> Quoting James Clarke (2015-07-15 22:20:57)
>> I had a look today at what's happening, and it's that the *file*
>> pager is trying to read from disk. Any thoughts?
> 
> There is another thing I forgot.  libpager is special, it has its own
> demuxer (see libpager/demuxer.c) that writes requests into a queue,
> and a pool of workers that process requests from said queue.
> 
> The thing is, when we inhibit the pager RPCs, we merely prevent new
> ones from being enqueued, but we don't prevent the workers from
> processing already enqueued requests.  So we indeed need to add
> functions to inhibit and restart paging to libpager that know about
> the queue.
> 
> Justus



reply via email to

[Prev in Thread] Current Thread [Next in Thread]