Re: [PATCH 0/5] vsock/virtio: SKB allocation improvements

Will Deacon
2025-06-30T12:50:48Z

On Fri, Jun 27, 2025 at 12:51:45PM +0200, Stefano Garzarella wrote:
> On Wed, Jun 25, 2025 at 02:15:38PM +0100, Will Deacon wrote:
> > We're using vsock extensively in Android as a channel over which we can
> > route binder transactions to/from virtual machines managed by the
> > Android Virtualisation Framework. However, we have been observing some
> > issues in production builds when using vsock in a low-memory environment
> > (on the host and the guest) such as:
> >
> > * The host receive path hanging forever, despite the guest performing
> > a successful write to the socket.
> >
> > * Page allocation failures in the vhost receive path (this is a likely
> > contributor to the above)
> >
> > * -ENOMEM coming back from sendmsg()
> >
> > This series aims to improve the vsock SKB allocation for both the host
> > (vhost) and the guest when using the virtio transport to help mitigate
> > these issues. Specifically:
> >
> > - Avoid single allocations of order > PAGE_ALLOC_COSTLY_ORDER
> >
> > - Use non-linear SKBs for the transmit and vhost receive paths
> >
> > - Reduce the guest RX buffers to a single page
> >
> > There are more details in the individual commit messages but overall
> > this results in less wasted memory and puts less pressure on the
> > allocator.
> >
> > This is my first time looking at this stuff, so all feedback is welcome.
>
> Thank you very much for this series!
>
> I left some minor comments, but overall LGTM!

Cheers for going through it! I'll work through your comments now...

Will