From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9EC11397 for ; Fri, 26 Dec 2025 19:37:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766777835; cv=none; b=LfayZUBQ/F4uThBBBKC9iXYAeGkUqmHXAOuGI+UJQAGQmnIk57NZcMOmONxF5vBMhESGjtxT1CUErMHGY0pOh+rw+NU2qqmBBDs8B+wv3IutGd14c7iyh3OHrPlzYCPCA7QUu9cQIQA+th4OnAAH7Vbo9QNzeUdjqSsfPEp0pY0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766777835; c=relaxed/simple; bh=MeLaV2gyn86MjigyVctCvpIsqyzRgBEDkK5Jno+cQDA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=EliOuPAuVWFYyBINs4CZnQZQb80jrq/QDEV6kmu8WB65C+9sMMMH9pwBHf0UJoyPopStZQC9jJO353QikgA/43swKxQKwiVyU3YqeQ4kaEwjEKjZy1rM3moXlxa5OVyPDrbOEK6QKkO9yaZgaWp57umS2da8Y9NjdJu6VPRmsXY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=gDI1cLKI; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=MXMFwQI0; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="gDI1cLKI"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="MXMFwQI0" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766777833; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MTuOJL+ghHD2rYugXkxXl1KmC02YdKASRSqPOvxtC4c=; b=gDI1cLKIM6SsZNOlDZ5sKH9pd8Ahe34qgxb9BMz/NPkzOtV7lBMpj2nNl7/E3L0WY5sU3Z CrrG1wy3zS9SBoWMMzyFU4K5N3NnQpKSA6sWrl19Kwk+HDMh54bG9cu30tVknHokZXA+db oLhCnGxRWtbDvtpiee0qjNCQ3dSpT+U= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-74-fRFGDYz6PtGkLNtFqxZrLA-1; Fri, 26 Dec 2025 14:37:11 -0500 X-MC-Unique: fRFGDYz6PtGkLNtFqxZrLA-1 X-Mimecast-MFC-AGG-ID: fRFGDYz6PtGkLNtFqxZrLA_1766777830 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-430f5dcd4d3so4042740f8f.1 for ; Fri, 26 Dec 2025 11:37:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1766777830; x=1767382630; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=MTuOJL+ghHD2rYugXkxXl1KmC02YdKASRSqPOvxtC4c=; b=MXMFwQI07h5vkZ4iBRB5hvl5Da0El98Wbox9kIS4d4MEFTDeyNmsWS0SP0k552ImjG P9+Ous0h05kqJ3RtwQVpevjQfA6rAf2EHfvDzLuqKlY3zI9DTYQHQ4otVcg4nCaUs3Qd DQoHEolYuw1mtwknCbFaQmXZwEZnw7/AKP5fHCs98Cy1zZMDHb2pl3a7+TwVoGUyw9h3 uz502ZUr+2uCn7rEWnF++4KyMXOFVKdz+vFQudACnU6mzwOU4S7+TTgz594BhjvyVvYz VHra7Ync0ZrV7iKARIt58EJIbUhybV3MwRywkrM8aupCzgKCkDYhn0W9fOZaE5r7r0or A5/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766777830; x=1767382630; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MTuOJL+ghHD2rYugXkxXl1KmC02YdKASRSqPOvxtC4c=; b=HbIkmHV4MkSpGLXryTXP/KgT/5fDy1wfw9ZmNZDiYthjPB8dVLSKQsWu0d3PJVxgKV +y/6YlZ3rS3C7sBEis9ujt0Nht/ZeIRIJ45m3CRhyI5wZy0exO9NkFMCk8461RS9Wl6v 4h0/0QFKPD0olYW05IemBgZrltqTnnkgfdm4ektY+Vbts5kXCJscljPMGYBNN9cV+u8H Xd+d00/0K9QeBr5oLZg0BVF9uZdkcn2QWG4mXcS8wJ+Mkpz8eCj78lWmcv7faIgyw3ai DRzztyhstI2ZGeFSDBnhG0eoC7ylQ61WwXSY8V+dFW7MHkxkj0loWF/OXab941NNNdBH gweQ== X-Forwarded-Encrypted: i=1; AJvYcCWHz84kWlbuSY7BrS/lbpSaU9L46N+AAX5pWotO8xsirIXYG8mhAm1GfqkLSk+LVtjDhkHJswr0yB3n6JI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz76idKrU0/SIFZtZ2D/NOa21Zt1xUMMbFOt2DgZYy5B2X8ISRA zwTP3xzmKDNq1SfVOqXZ+l9yuhvxX/4zd2NN5FrcdRY6rO1KQ+iAZ7qovUGddoa6TL8f8LbhLQ5 yN88D7w3Rpid4RzOSrT8WUdYvhII9SmD9099qMdSaHZjlij4kIJLgoeovNggYaovS2Q== X-Gm-Gg: AY/fxX5L/a81JeY1eRQenuzg4Au32FE2k3EX41VraZionb0l6orvQ4Pr90bYClTLr+2 fsse5xOUH5JvS93aNZqq174TAApBI+MnSpeHcYG9gPqihrEZe7c2uqebwzhKBoTfMfQ199v4QnT j6L/+kZ1Mh5yTPpy4AjgfXi0qopkn4t9leH20qKd67X07OX5EzkcX1y8d5IfdhqOxQ9e6vtWE1z eU6RnYkoV5wmspqtJsENWTa/YOzpHOf08KHTyk67lHiPXDRHhxIc33NPwhKxuxgsMwIM7Y2w0A+ 5mgJGPf92Pcn5cQY/rL/9/JqaWBh1szni3QVQyrPX1gfEALtbHCrtODjOiMECLKkyMOvY4ccT2l DWFJwaD2rlJ82GNCBfbgiRq3TsMqity33iA== X-Received: by 2002:a05:6000:601:b0:430:fd0e:a502 with SMTP id ffacd0b85a97d-432448bf4f7mr32063396f8f.22.1766777830308; Fri, 26 Dec 2025 11:37:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IHQtXs2F76mu663pulYfE+dS9Faun4N/RAzLGBitQaOvqpvM1GC+nkac1oVWijG7Puy4F7chw== X-Received: by 2002:a05:6000:601:b0:430:fd0e:a502 with SMTP id ffacd0b85a97d-432448bf4f7mr32063376f8f.22.1766777829910; Fri, 26 Dec 2025 11:37:09 -0800 (PST) Received: from redhat.com (IGLD-80-230-31-118.inter.net.il. [80.230.31.118]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324ea2278dsm47499940f8f.18.2025.12.26.11.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Dec 2025 11:37:09 -0800 (PST) Date: Fri, 26 Dec 2025 14:37:07 -0500 From: "Michael S. Tsirkin" To: Jason Wang Cc: xuanzhuo@linux.alibaba.com, eperezma@redhat.com, virtualization@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH V11 13/19] virtio_ring: introduce virtqueue ops Message-ID: <20251226143433-mutt-send-email-mst@kernel.org> References: <20251225042608.32350-1-jasowang@redhat.com> <20251225042608.32350-14-jasowang@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20251225042608.32350-14-jasowang@redhat.com> On Thu, Dec 25, 2025 at 12:26:02PM +0800, Jason Wang wrote: > This patch introduces virtqueue ops which is a set of callbacks > that will be called for different queue layout or features. This would > help to avoid branches for split/packed and will ease the future > implementation like in order. > > Note that in order to eliminate the indirect calls this patch uses > global array of const ops to allow compiler to avoid indirect > branches. > > Tested with CONFIG_MITIGATION_RETPOLINE, no performance differences > were noticed. > > Acked-by: Eugenio Pérez > Suggested-by: Michael S. Tsirkin > Signed-off-by: Jason Wang > --- > drivers/virtio/virtio_ring.c | 173 ++++++++++++++++++++++++++--------- > 1 file changed, 130 insertions(+), 43 deletions(-) > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > index f804c5c6975a..4e905dc7b6cb 100644 > --- a/drivers/virtio/virtio_ring.c > +++ b/drivers/virtio/virtio_ring.c > @@ -67,6 +67,12 @@ > #define LAST_ADD_TIME_INVALID(vq) > #endif > > +enum vq_layout { > + SPLIT = 0, > + PACKED, > + VQ_TYPE_MAX, > +}; > + VQ_LAYOUT_SPLIT and VQ_LAYOUT_PACKED would be better. and VQ_LAYOUT_MAX for consistency. > struct vring_desc_state_split { > void *data; /* Data for callback. */ > > @@ -159,12 +165,29 @@ struct vring_virtqueue_packed {