DragonFly BSD
DragonFly kernel List (threaded) for 2004-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: (userspace) vfs and xio [CAPS?]

From: Dave Leimbach <leimySPAM2k@xxxxxxx>
Date: 24 May 2004 11:40:15 -0500

Matthew Dillon <dillon@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

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


> 					-Matt
> 					<dillon@xxxxxxxxxxxxx>

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]