All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vhost/vsock: Use kvmalloc/kvfree for larger packets.
@ 2022-09-28  6:45 Junichi Uekawa
  2022-09-28  8:28   ` Stefano Garzarella
  2022-09-30  1:50 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 28+ messages in thread
From: Junichi Uekawa @ 2022-09-28  6:45 UTC (permalink / raw)
  To: Stefan Hajnoczi, Stefano Garzarella
  Cc: Jason Wang, Eric Dumazet, davem, netdev, Jakub Kicinski,
	virtualization, kvm, mst, Paolo Abeni, linux-kernel,
	Junichi Uekawa

When copying a large file over sftp over vsock, data size is usually 32kB,
and kmalloc seems to fail to try to allocate 32 32kB regions.

 Call Trace:
  [<ffffffffb6a0df64>] dump_stack+0x97/0xdb
  [<ffffffffb68d6aed>] warn_alloc_failed+0x10f/0x138
  [<ffffffffb68d868a>] ? __alloc_pages_direct_compact+0x38/0xc8
  [<ffffffffb664619f>] __alloc_pages_nodemask+0x84c/0x90d
  [<ffffffffb6646e56>] alloc_kmem_pages+0x17/0x19
  [<ffffffffb6653a26>] kmalloc_order_trace+0x2b/0xdb
  [<ffffffffb66682f3>] __kmalloc+0x177/0x1f7
  [<ffffffffb66e0d94>] ? copy_from_iter+0x8d/0x31d
  [<ffffffffc0689ab7>] vhost_vsock_handle_tx_kick+0x1fa/0x301 [vhost_vsock]
  [<ffffffffc06828d9>] vhost_worker+0xf7/0x157 [vhost]
  [<ffffffffb683ddce>] kthread+0xfd/0x105
  [<ffffffffc06827e2>] ? vhost_dev_set_owner+0x22e/0x22e [vhost]
  [<ffffffffb683dcd1>] ? flush_kthread_worker+0xf3/0xf3
  [<ffffffffb6eb332e>] ret_from_fork+0x4e/0x80
  [<ffffffffb683dcd1>] ? flush_kthread_worker+0xf3/0xf3

Work around by doing kvmalloc instead.

Signed-off-by: Junichi Uekawa <uekawa@chromium.org>
---

 drivers/vhost/vsock.c                   | 2 +-
 net/vmw_vsock/virtio_transport_common.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index 368330417bde..5703775af129 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -393,7 +393,7 @@ vhost_vsock_alloc_pkt(struct vhost_virtqueue *vq,
 		return NULL;
 	}
 
-	pkt->buf = kmalloc(pkt->len, GFP_KERNEL);
+	pkt->buf = kvmalloc(pkt->len, GFP_KERNEL);
 	if (!pkt->buf) {
 		kfree(pkt);
 		return NULL;
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
index ec2c2afbf0d0..3a12aee33e92 100644
--- a/net/vmw_vsock/virtio_transport_common.c
+++ b/net/vmw_vsock/virtio_transport_common.c
@@ -1342,7 +1342,7 @@ EXPORT_SYMBOL_GPL(virtio_transport_recv_pkt);
 
 void virtio_transport_free_pkt(struct virtio_vsock_pkt *pkt)
 {
-	kfree(pkt->buf);
+	kvfree(pkt->buf);
 	kfree(pkt);
 }
 EXPORT_SYMBOL_GPL(virtio_transport_free_pkt);
-- 
2.37.3.998.g577e59143f-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-09-30  1:50 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-28  6:45 [PATCH] vhost/vsock: Use kvmalloc/kvfree for larger packets Junichi Uekawa
2022-09-28  8:28 ` Stefano Garzarella
2022-09-28  8:28   ` Stefano Garzarella
2022-09-28  9:31   ` Michael S. Tsirkin
2022-09-28  9:31     ` Michael S. Tsirkin
2022-09-28 15:11     ` Stefano Garzarella
2022-09-28 15:11       ` Stefano Garzarella
2022-09-27 10:36       ` Bobby Eshleman
2022-09-28 20:02       ` Michael S. Tsirkin
2022-09-28 20:02         ` Michael S. Tsirkin
2022-09-29  7:40         ` Stefano Garzarella
2022-09-29  7:40           ` Stefano Garzarella
2022-09-29  7:47           ` Michael S. Tsirkin
2022-09-29  7:47             ` Michael S. Tsirkin
2022-09-28 23:14       ` Junichi Uekawa (上川純一)
2022-09-29  7:19         ` Michael S. Tsirkin
2022-09-29  7:19           ` Michael S. Tsirkin
2022-09-29  7:46           ` Stefano Garzarella
2022-09-29  7:46             ` Stefano Garzarella
2022-09-29  7:49             ` Michael S. Tsirkin
2022-09-29  7:49               ` Michael S. Tsirkin
2022-09-29 16:07               ` Jakub Kicinski
2022-09-29 16:25                 ` Michael S. Tsirkin
2022-09-29 16:25                   ` Michael S. Tsirkin
2022-09-29 18:07                   ` Jakub Kicinski
2022-09-30  0:49                     ` Junichi Uekawa (上川純一)
2022-09-30  1:35                       ` Jakub Kicinski
2022-09-30  1:50 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.