<div><span style="color: rgb(160, 160, 168); ">On Wednesday, August 10, 2011 at 18:23 , Johann Lombardi wrote:</span></div><blockquote type="cite"><div>
                    <span><div><div>Hi there,<br></div></div></span></div></blockquote><div><br></div><div>Hi Johann, [sorry, I hit a send button accidentally a few minutes ago] </div><blockquote type="cite"><div><span><div><div><br>I am working on a new client-side RPC engine using the per-stripe radix tree to select pages and trying to minimize RPC fragmentation. This should allow us to consume grant space more intelligently and to support blocksize > pagesize (e.g. for ext4 bigalloc).<br><br>For historical reasons (lustre was initially developed for 2.4 kernels), the 1.8 client holds the page lock over bulk write RPCs. Some basic support for PG_writeback was added back in 2007 (see bugzilla ticket 11710), but the page lock is still held until RPC completion.<br>Like the 1.8 client, the new client i/o stack introduced in 2.0 also keeps pages locked over transfer. I'm estimating the effort involved in implementing full PG_writeback support in CLIO. Does anybody have any technical concerns about this change?<br></div></div></span></div></blockquote><div><br></div><div>the reasons to use the same lock for page-in and page-out in CLIO were</div><div><br></div><div>    * portability: Solaris, Windows and pretty much every kernel around use the same lock and</div><div><br></div><div>    * simplicity.</div><div><br></div><div>I don't think there are any serious problems with splitting the lock, one has to be careful with checking all places where page is assumed to be "owned" by IO and making certain the lock is taken, if necessary.</div><div> </div><blockquote type="cite"><div><span><div><div><br>Thanks in advance.<br><br>Cheers,<br>Johann<br></div></div></span></div></blockquote><div><br></div><div>Nikita.</div><div> </div><blockquote type="cite"><div><span><div><div>-- <br>Johann Lombardi<br>Whamcloud, Inc.<br><a href="http://www.whamcloud.com">www.whamcloud.com</a><br></div></div></span>
                  
                  
                  
                  
                </div></blockquote><div>
                    <br>
                </div>