Re: pagevecs of more than PAGEVEC_SIZE pages

From: Andrew Morton
Date: Fri May 23 2008 - 01:55:26 EST


On Thu, 22 May 2008 14:13:07 -0500 "Steve French" <smfrench@xxxxxxxxx> 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?

> pagevec_lookup_tag (and the inline function pagevec_space which I
> don't use) is the main place that cifs needs a pagevec instead of
> simply an array of pages and PAGEVEC_SIZE does not seem to matter
> there (it works if I malloc a structure with more pages and request
> more than 14 pages out of pagevec_lookup_tag). Is there another
> better alternative other than defining a larger pagevec (pagevec2 or
> cifs_pagevec)? Should I simply kmalloc something larger than a
> pagevec and cast a (struct pagevec *) to it?

We could make pagevecs variable-sized easily enough - add a `struct
page **' to it. But it's more overhead and this is the first time I've
seen demand for it?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/