[Devel] [PATCH vz7] net/vhost: Replace kmalloc with kvmalloc for order>=3
Andrei Vagin
avagin at virtuozzo.com
Tue Feb 27 01:27:53 MSK 2018
On Mon, Feb 26, 2018 at 03:29:51PM +0300, Oleg Babin wrote:
> Currently we allocate more than eight pages of memory in
> vhost_net_set_ubuf_info() function and we do not need
> them to be physically contiguous, so it is feasible to
> replace a call to kmalloc() with a call to kvmalloc().
I see only 6 pages
UIO_MAXIOV = 1024
struct ubuf_info {
void (*callback)(struct ubuf_info *, bool zerocopy_success);
void *ctx;
unsigned long desc;
};
sizeof(struct ubuf_info) = 24
1024 * 24 / 4096
6
>
> https://jira.sw.ru/browse/PSBM-81803
> Signed-off-by: Oleg Babin <obabin at virtuozzo.com>
> ---
> drivers/vhost/net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
> index 1076a46..d397ceb 100644
> --- a/drivers/vhost/net.c
> +++ b/drivers/vhost/net.c
> @@ -179,8 +179,8 @@ int vhost_net_set_ubuf_info(struct vhost_net *n)
> zcopy = vhost_net_zcopy_mask & (0x1 << i);
> if (!zcopy)
> continue;
> - n->vqs[i].ubuf_info = kmalloc(sizeof(*n->vqs[i].ubuf_info) *
> - UIO_MAXIOV, GFP_KERNEL);
> + n->vqs[i].ubuf_info = kvmalloc(sizeof(*n->vqs[i].ubuf_info) *
> + UIO_MAXIOV, GFP_KERNEL);
> if (!n->vqs[i].ubuf_info)
> goto err;
> }
> --
> 1.8.3.1
>
> _______________________________________________
> Devel mailing list
> Devel at openvz.org
> https://lists.openvz.org/mailman/listinfo/devel
More information about the Devel
mailing list