Re: MM deadlock [was: Re: arca-vm-8...]

Pavel Machek
1999-01-11T11:21:18Z

Hi!

> In fact, to make it really safe we'd need to avoid synchronous swapout
> altogether: otherwise we can have
>
> A kswiod nbd server process
> lock_super();
> bread(ndb device);
> try_to_free_page();
> rw_swap_page_async();
> filemap_write_page();
> lock_super();
> wait_on_buffer();
> try_to_free_page();
> rw_swap_page_sync();
> Oops, kswiod is stalled.
>
> Can we get away without synchronous swapout? Notice that in this case,
> kswiod may be blocked but kswapd itself will not be. As long as the nbd
> server does not try to do a synchronous swap, it won't deadlock on
> kswiod. In other words, it is safe to wait for avaibility of
> another

Is this only matter of nbd? If so, maybe the best solution is to start
claiming: "don't swap over nbd, don't mount localhost drives read
write". [It is bad, but it is probably better than polluting rest of
kernel with nbd workarounds...]

Pavel
--
The best software in life is free (not shareware)! Pavel
GCM d? s-: !g p?:+ au- a--@ w+ v- C++@ UL+++ L++ N++ E++ W--- M- Y- R+