Subject: Re: [PATCH 0/3] tun: fix aio

From: Rusty Russell <[email-masked]>
Date: Tue, 5 May 2009 12:48:13 +0930

On Mon, 27 Apr 2009 07:04:55 pm Michael S. Tsirkin wrote:
> On Mon, Apr 27, 2009 at 10:48:37AM +0930, Rusty Russell wrote:
> > > Sure. Here it is: much smaller, but slightly slower.
> > 
> > Which could probably be fixed by using an on-stack version for a iovec
> > of less than a certain size...
> 
> I agree that for large message sizes the malloc would probably be
> dwarfed by the cost of memory copy. However a large iovec might pass a
> small message, might it not?

Sorry, I didn't make myself clear.  Something like:

	struct iovec smalliov[512 / sizeof(struct iovec)];

	if (count < ARRAY_SIZE(smalliov)) {
		iv = smalliov;
	} else {
		iv = kmalloc(...)
	}

	...

	if (iv != smalliov)
		kfree(iv);

Cheers,
Rusty.