Re: [PATCH v8 0/5] Enhance RPMsg buffer management

From: Shah, Tanmay

Date: Thu Sep 03 2026 - 11:40:57 EST




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.

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
>