Re: pagevecs of more than PAGEVEC_SIZE pages

From: Steve French
Date: Fri May 23 2008 - 13:14:19 EST

Sounds interesting - looks like the only user at the moment is NFS's
SunRPC right (so no other examples to look at)?

How much better is this than send_msg?

For the write path (coming from writepage and writepages) - we have a
small header followed by a list of sequential pages (the servers
either support 4 pages (old windows), 15 pages (some windows and
NetApp etc. filers), or 31 pages (older Samba and other Windows) or
2048 pages (current Samba supports up to 8MB writes, and this may be
very useful now that Samba can call splice/receivefile and not have to
do the extra copy)

On Fri, May 23, 2008 at 4:29 AM, Evgeniy Polyakov <johnpol@xxxxxxxxxxx> wrote:
> Hi.
> On Thu, May 22, 2008 at 10:54:59PM -0700, Andrew Morton (akpm@xxxxxxxxxxxxxxxxxxxx) wrote:
>> > Now that various servers support processing larger than 64K file
>> > writes, it would be helpful to have pagevecs that are larger than 14
>> > pages (PAGEVEC_SIZE).so an array of more pages could be passed to
>> > kernel_sendmsg (thus allowing writes larger than 56K, depending on
>> > wsize - the server limit is currently 8MB)
>> You can pass multiple pagevecs into kernel_sendmsg?
> kernel_sendmsg() requires iovecs, so each page will have to be mapped,
> which can end up having too many slots in kmap table. I can reproduce
> deadlock we talked about in POHMELFS thread with 100 highmem pages per
> transaction on 32bit x86, so increasing pagevec noticebly can deadlock
> CIFS too.
> It could be great if CIFS moved to kernel_sendpage() instead, Steve?
> --
> Evgeniy Polyakov


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at