DragonFly kernel List (threaded) for 2004-05
Re: (userspace) vfs and xio [CAPS?]
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.