Junichi Uekawa
e28a4e7f02
vhost/vsock: Use kvmalloc/kvfree for larger packets.
...
[ Upstream commit 0e3f72931fc47bb81686020cc643cde5d9cd0bb8 ]
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.
vhost-5837: page allocation failure: order:4, mode:0x24040c0
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.
Fixes: 433fc58e6bf2 ("VSOCK: Introduce vhost_vsock.ko")
Signed-off-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Link: https://lore.kernel.org/r/20220928064538.667678-1-uekawa@chromium.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-10-26 12:34:47 +02:00
..
2021-07-22 16:19:03 +02:00
2022-08-17 14:24:23 +02:00
2021-08-13 16:30:35 -07:00
2022-08-31 17:16:37 +02:00
2021-07-23 14:20:25 +01:00
2022-06-22 14:22:01 +02:00
2022-07-29 17:25:07 +02:00
2022-10-26 12:34:46 +02:00
2022-09-05 10:30:07 +02:00
2021-06-25 13:13:50 +02:00
2022-09-28 11:11:52 +02:00
2021-09-14 12:51:15 +01:00
2022-08-25 11:40:46 +02:00
2022-05-25 09:57:28 +02:00
2022-10-26 12:34:46 +02:00
2022-03-08 19:12:52 +01:00
2022-08-17 14:23:37 +02:00
2022-08-03 12:03:51 +02:00
2022-09-20 12:39:45 +02:00
2021-08-03 13:05:26 +01:00
2022-06-29 09:03:23 +02:00
2022-08-31 17:16:37 +02:00
2022-10-12 09:53:27 +02:00
2022-10-26 12:34:47 +02:00
2022-10-26 12:34:47 +02:00
2021-08-09 10:13:32 +01:00
2022-09-08 12:28:03 +02:00
2022-08-31 17:16:36 +02:00
2022-06-22 14:21:58 +02:00
2022-04-27 14:38:53 +02:00
2022-03-28 09:58:46 +02:00
2022-10-26 12:34:39 +02:00
2022-09-08 12:28:07 +02:00
2022-04-13 20:59:16 +02:00
2022-09-08 12:28:07 +02:00
2022-08-31 17:16:50 +02:00
2022-01-05 12:42:37 +01:00
2022-10-26 12:34:45 +02:00
2022-04-13 20:59:10 +02:00
2022-08-25 11:40:25 +02:00
2022-01-27 11:04:00 +01:00
2022-06-09 10:22:46 +02:00
2022-09-08 12:28:02 +02:00
2022-09-05 10:30:12 +02:00
2022-01-11 15:35:16 +01:00
2022-08-25 11:40:29 +02:00
2022-08-25 11:39:54 +02:00
2022-04-08 14:23:00 +02:00
2022-08-31 17:16:38 +02:00
2022-09-23 14:15:50 +02:00
2022-10-05 10:39:42 +02:00
2022-08-03 12:03:54 +02:00
2022-09-28 11:11:53 +02:00
2021-11-18 19:17:11 +01:00
2022-08-31 17:16:37 +02:00
2021-08-04 12:35:07 +01:00
2022-09-15 11:30:05 +02:00
2022-08-03 12:03:47 +02:00
2022-06-14 18:36:17 +02:00
2022-10-26 12:34:47 +02:00
2022-10-15 07:59:03 +02:00
2022-04-08 14:23:53 +02:00
2022-10-26 12:34:40 +02:00
2022-10-26 12:34:46 +02:00
2021-07-29 15:06:49 +01:00
2021-07-29 15:06:49 +01:00
2022-08-31 17:16:45 +02:00