(userspace) vfs and xio [CAPS?]

Dave Leimbach leimySPAM2k at mac.com
Mon May 24 09:40:15 PDT 2004


Matthew Dillon <dillon at xxxxxxxxxxxxxxxxxxxx> writes:


>     The issue with userspace UIO's in VFS is two fold:  First, the VFS
>     operation may involve a thread switch and the cross-address-space data
>     access that standard UIO would otherwise have to do is extremely
>     expensive.  the XIO cannot lock up too many pages at once so they are
>     limited to smaller (e.g. 128KB or 256KB) chunks whereas UIO's can
>     cover megabytes or gigabytes in a single I/O without wiring down all
>     those pages.  So you can't directly convert a UIO to a (single) XIO.

This brings me back to wondering about CAPS and it's 128K single message limits.

Is it expected that the user of CAPS would manually break his/her messages into
<= 128K chunks and then send?  



> 
>     But because cross-address-space access are so expensive, it will
>     probably be more efficient to break a large UIO into an XIO loop
>     and take the thread switching hit in the loop rather then to try to pull
>     out a portion of a foreign address space.  Besides, physical I/O
>     is already limited to 128KB/256KB chunks so the extra thread switches
>     will not be that big an issue.
> 

Well yeah... like that for CAPS too?  Or will CAPS include this loop in it's
implementation?

Seems like a concern that CAPS users shouldn't have to deal with unless it's
terrbly inefficient to implement the loop in CAPS.

Dave

> 					-Matt
> 					<dillon at xxxxxxxxxxxxx>





More information about the Kernel mailing list