Thread (44 messages) 44 messages, 6 authors, 2026-01-29

Re: [PATCH v2 13/15] vsock/virtio: reorder fields to reduce padding

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2026-01-08 14:17:59
Also in: kvm, linux-crypto, linux-doc, linux-iommu, linux-scsi, lkml, virtualization

On Thu, Jan 08, 2026 at 03:11:36PM +0100, Stefano Garzarella wrote:
On Mon, Jan 05, 2026 at 03:23:41AM -0500, Michael S. Tsirkin wrote:
quoted
Reorder struct virtio_vsock fields to place the DMA buffer (event_list)
last. This eliminates the padding from aligning the struct size on
ARCH_DMA_MINALIGN.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
net/vmw_vsock/virtio_transport.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
index ef983c36cb66..964d25e11858 100644
--- a/net/vmw_vsock/virtio_transport.c
+++ b/net/vmw_vsock/virtio_transport.c
@@ -60,9 +60,7 @@ struct virtio_vsock {
	 */
	struct mutex event_lock;
	bool event_run;
-	__dma_from_device_group_begin();
-	struct virtio_vsock_event event_list[8];
-	__dma_from_device_group_end();
+
	u32 guest_cid;
	bool seqpacket_allow;
@@ -76,6 +74,10 @@ struct virtio_vsock {
	 */
	struct scatterlist *out_sgs[MAX_SKB_FRAGS + 1];
	struct scatterlist out_bufs[MAX_SKB_FRAGS + 1];
+
IIUC we would like to have these fields always on the bottom of this struct,
so would be better to add a comment here to make sure we will not add other
fields in the future after this?
not necessarily - you can add fields after, too - it's just that
__dma_from_device_group_begin already adds a bunch of padding, so adding
fields in this padding is cheaper.


do we really need to add comments to teach people about the art of
struct packing?
Maybe we should also add a comment about the `event_lock` requirement we
have in the section above.

Thanks,
Stefano
hmm which requirement do you mean?
quoted
+	__dma_from_device_group_begin();
+	struct virtio_vsock_event event_list[8];
+	__dma_from_device_group_end();
};

static u32 virtio_transport_get_local_cid(void)
-- 
MST
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help