[haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
- To: haiku-gsoc@xxxxxxxxxxxxx
- Date: Mon, 23 Jun 2008 12:12:59 +0200 CEST
"Salvatore Benedetto" <emitrax@xxxxxxxxx> wrote:
> Anyway, I wanted to test with condition variable, but I'm not sure on
> how to proceed, despite of that
> though, I think we should hanle the error E_BUSY differently, because
> 10 seconds with our current
> scheduler, and with not I/O scheduler doesn't seem to be a good
> choice
> on slow system like running
> on vmware is.
We might want to update the wait time if any more pages could be
written back, but we definitely shouldn't wait forever for it to happen
- it's not acceptable to kill the system upon an I/O error.
If you look closely to the vnode_low_memory_handler(), it will first
try to write back the vnode's pages without making the vnode busy.
Only later it will mark the vnode busy in order to delete it -- since
it cannot guaranty that it will get the same vnodes here, it needs to
try to write them back again. At this point, a new (and dirty) vnode is
obviously chosen, since otherwise it wouldn't be possible to hang
there.
Condition variables obviously wouldn't help here, even though it might
be worthwhile to use them instead of the busy flag. I don't really like
that it would waste 4 more precious bytes per vnode, though.
In any case, it's probably a good idea to improve the low memory
handler that it will only pick clean vnodes.
I can't imagine this being an IDE problem. It's much more probably a
deadlock problem of some allocator in a low memory situation that
causes this.
Bye,
Axel.
- Follow-Ups:
- [haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: Salvatore Benedetto
- [haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: Ingo Weinhold
- References:
- [haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: Salvatore Benedetto
Other related posts:
- » [haiku-gsoc] [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- » [haiku-gsoc] Re: [HCD]: Bfs bug #1
- [haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: Salvatore Benedetto
- [haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: Ingo Weinhold
- [haiku-gsoc] Re: [HCD]: Bfs bug #1
- From: Salvatore Benedetto