Re: [PATCH v8 0/5] Enhance RPMsg buffer management
From: Mathieu Poirier
Date: Fri Sep 04 2026 - 16:25:34 EST
On Thu, Sep 03, 2026 at 10:28:09AM -0500, Shah, Tanmay wrote:
>
>
> On 9/1/2026 8:03 AM, Arnaud POULIQUEN wrote:
> >
> >
> > On 8/28/26 16:58, Tanmay Shah wrote:
> >> Current design uses fixed (512 bytes) rpmsg buffer size in both rx and
> >> tx directions. This design is not suitable if the payload is larger than
> >> 512 bytes or the payload is very small and doesn't need that much
> >> memory. Instead introduce new virtio feature to retrieve rpmsg tx buf
> >> size and rx buf size from the virtio config space in the resource table.
> >
> > This version seems good to me, with or without my suggestion in patch 4/5
> >
> > Acked-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxxxxxxx>
> >
> > Thanks!
> >
> > Arnaud
> >
>
> Thank You Arnaud.
>
> If I end up spinning another revision with any more comments, then I
> will address suggestion in the patch 4/5 as well. If I get Mathieu's RB
> for this series, then we can merge this series as it is.
>
I edited 4/5 to include Arnaud's suggestion and applied this set.
> Tanmay
>
> >>
> >> Changes in v8:
> >> - fix commit message of 3/5, "%s/enable/Enabled"
> >> - introduce new function to get buffer size for the vdev device
> >> - fix description of VIRTIO_RPMSG_F_BUFSZ define
> >> - "%s/or differnt RX and TX sizes)/or different RX and TX queue
> >> sizes)/"
> >>
> >> Changes in v7:
> >> - Fix 5/5 commit text, and move change log out of commit text
> >>
> >> Changes in v6:
> >> - remove buffer alignment from config space
> >> - rpmsg.rst: modify alignment related documentation
> >>
> >> Changes in v5:
> >> - fix documentation about alignment of the buffer size
> >> - change version field from u16 to u8
> >> - remove buffer alignment check
> >> - Separate buffer alignment vs MTU of a single buffer
> >> - Use buffer alignment only to get next buffer address at alignment
> >> boundary
> >>
> >> Changes in v4:
> >> - Introduce new patch to modify rpmsg.rst documentation
> >> - check version is always 1.
> >> - check size field is same as size of struct virtio_rpmsg_config
> >> - introduce alignment field
> >> - check alignment field is power of 2
> >> - check tx and rx buf size is aligned with alignment passed in the
> >> structure
> >> - check msg size is < MTU size
> >>
> >> Changes in v3:
> >> - new patch [1/4] that renames variables with clear names.
> >> - %s/rbufs/rx_bufs/
> >> - %s/sbufs/tx_bufs/
> >> - %s/last_sbuf/last_tx_buf/
> >> - add num_rx_buf and num_tx_buf in the documentation
> >> - change version field from u16 to u8
> >> - introduce size field in the rpmsg_virtio_config structure
> >> - check version field is set to any non-zero value.
> >> - check size field is not 0.
> >> - Remove field for private config, as not needed for now.
> >> - add documentation of rpmsg_virtio_config structure
> >> - Check for error when retrieving MTU size in the sample driver
> >> - %s/mtu/MTU/
> >>
> >> Changes in v2:
> >> - Change author
> >> - fix commit message with better explanation
> >> - %s/sbuf/tx_buf
> >> - %s/rbuf/rx_buf
> >> - %s/num_rbuf/num_rx_buf/
> >> - %s/num_sbuf/num_tx_buf/
> >> - %s/sbuf_size/tx_buf_size/
> >> - %s/rbuf_size/rx_buf_size/
> >> - fix typo
> >> - do not use ALIGN on buf size, rely on allocator
> >> - make err msg more explicit, %s/vdev config:/bad vdev config/
> >> - fix license and add AMD copyrights in the header virtio_rpmsg.h
> >> - Assign bit 1 to VIRTIO_RPMSG_F_BUFSZ feature
> >> - use __virtio32 over __u32
> >> - add version field to virtio rpmsg config structure
> >> - Introduce new patch to print rpmsg mtu size in the sample rpmsg
> >> driver
> >> - move linux/virtio_rpmsg.h to linux/rpmsg/virtio_rpmsg.h
> >>
> >>
> >> Tanmay Shah (5):
> >> rpmsg: virtio_rpmsg_bus: rename rbufs and sbufs
> >> rpmsg: virtio_rpmsg_bus: allow different size of tx and rx bufs
> >> rpmsg: virtio_rpmsg_bus: get buffer size from config space
> >> docs: rpmsg: add virtio config space details
> >> samples: rpmsg: add MTU size info
> >>
> >> Documentation/staging/rpmsg.rst | 17 +++
> >> drivers/rpmsg/virtio_rpmsg_bus.c | 156 +++++++++++++++++++---------
> >> include/linux/rpmsg/virtio_rpmsg.h | 41 ++++++++
> >> samples/rpmsg/rpmsg_client_sample.c | 20 +++-
> >> 4 files changed, 186 insertions(+), 48 deletions(-)
> >> create mode 100644 include/linux/rpmsg/virtio_rpmsg.h
> >>
> >>
> >> base-commit: d4d61a4b0a52e8f3cdb3e1578602850a3452ec3e
> >
>