Subject: Re: Redoing file system suspension API (update)
To: None <wrstuden@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 06/30/2006 13:33:11
> To really make this work, we would probably need to retool some of how the 
> UBC code works. We would need to differentiate between a page fault due to 
> a program (or some random old kernel routine) accessing memory and a page 
> fault due to VOP_READ() or VOP_WRITE() accessing memory it just mapped in.
> 
> The difference is that the first isn't in a transaction, and so needs to 
> implicitly start one. At the uvm level, however, the latter already is in 
> a transaction. So starting one will have the deadlock that you describe.

VOP_READ can involve another filesystem's VOP_GETPAGES
if user buffer is mmap'ed region.

YAMAMOTO Takashi