All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Dan Jurgens <danielj@nvidia.com>
Cc: netdev@vger.kernel.org, jasowang@redhat.com, pabeni@redhat.com,
	virtualization@lists.linux.dev, parav@nvidia.com,
	shshitrit@nvidia.com, yohadt@nvidia.com,
	xuanzhuo@linux.alibaba.com, eperezma@redhat.com, jgg@ziepe.ca,
	kevin.tian@intel.com, kuba@kernel.org, andrew+netdev@lunn.ch,
	edumazet@google.com
Subject: Re: [PATCH net-next v11 08/12] virtio_net: Use existing classifier if possible
Date: Wed, 19 Nov 2025 02:41:34 -0500	[thread overview]
Message-ID: <20251119023904-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <e80a7828-f42f-4263-89c1-66512b2dde6e@nvidia.com>

On Wed, Nov 19, 2025 at 01:33:31AM -0600, Dan Jurgens wrote:
> On 11/19/25 1:23 AM, Michael S. Tsirkin wrote:
> > On Wed, Nov 19, 2025 at 01:18:56AM -0600, Dan Jurgens wrote:
> >> On 11/19/25 12:35 AM, Michael S. Tsirkin wrote:
> >>> On Wed, Nov 19, 2025 at 12:26:23AM -0600, Dan Jurgens wrote:
> >>>> On 11/18/25 3:55 PM, Michael S. Tsirkin wrote:
> >>>>> On Tue, Nov 18, 2025 at 08:38:58AM -0600, Daniel Jurgens wrote:
> >>>>>> Classifiers can be used by more than one rule. If there is an existing
> >>>>>> classifier, use it instead of creating a new one.
> >>>>
> >>>>>> +	struct virtnet_classifier *tmp;
> >>>>>> +	unsigned long i;
> >>>>>>  	int err;
> >>>>>>  
> >>>>>> -	err = xa_alloc(&ff->classifiers, &c->id, c,
> >>>>>> +	xa_for_each(&ff->classifiers, i, tmp) {
> >>>>>> +		if ((*c)->size == tmp->size &&
> >>>>>> +		    !memcmp(&tmp->classifier, &(*c)->classifier, tmp->size)) {
> >>>>>
> >>>>> note that classifier has padding bytes.
> >>>>> comparing these with memcmp is not safe, is it?
> >>>>
> >>>> The reserved bytes are set to 0, this is fine.
> >>>
> >>> I mean the compiler padding.  set to 0 where?
> >>
> >> There's no compiler padding in virtio_net_ff_selector. There are
> >> reserved fields between the count and selector array.
> > 
> > I might be missing something here, but are not the
> > structures this code compares of the type struct virtnet_classifier
> > not virtio_net_ff_selector ?
> > 
> > and that one is:
> > 
> >  struct virtnet_classifier {
> >         size_t size;
> > +       refcount_t refcount;
> >         u32 id;
> >         struct virtio_net_resource_obj_ff_classifier classifier;
> >  };
> > 
> > 
> > which seems to have some padding depending on the architecture.
> 
> We're only comparing the ->classifier part of that, which is pad free.

Oh I see a classifier has a classifer inside :(

Should be something else, e.g. ff_classifier to avoid confusion I think.

Or resource_obj since it's the resource object. Or even obj.

But


> > 
> > 
> >


  reply	other threads:[~2025-11-19  7:41 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-18 14:38 [PATCH net-next v11 00/12] virtio_net: Add ethtool flow rules support Daniel Jurgens
2025-11-18 14:38 ` [PATCH net-next v11 01/12] virtio_pci: Remove supported_cap size build assert Daniel Jurgens
2025-11-19  7:38   ` Michael S. Tsirkin
2025-11-19 14:23     ` Dan Jurgens
2025-11-18 14:38 ` [PATCH net-next v11 02/12] virtio: Add config_op for admin commands Daniel Jurgens
2025-11-19  7:36   ` Michael S. Tsirkin
2025-11-18 14:38 ` [PATCH net-next v11 03/12] virtio: Expose generic device capability operations Daniel Jurgens
2025-11-18 21:42   ` Michael S. Tsirkin
2025-11-19  3:27     ` Dan Jurgens
2025-11-18 14:38 ` [PATCH net-next v11 04/12] virtio: Expose object create and destroy API Daniel Jurgens
2025-11-18 22:14   ` Michael S. Tsirkin
2025-11-19  3:29     ` Dan Jurgens
2025-11-19  6:39       ` Michael S. Tsirkin
2025-11-19  7:21         ` Dan Jurgens
2025-11-18 14:38 ` [PATCH net-next v11 05/12] virtio_net: Query and set flow filter caps Daniel Jurgens
2025-11-18 22:06   ` Michael S. Tsirkin
2025-11-19  5:57     ` Dan Jurgens
2025-11-18 23:03   ` Michael S. Tsirkin
2025-11-19  4:27     ` Dan Jurgens
2025-11-19  7:53   ` Michael S. Tsirkin
2025-11-19 14:47     ` Dan Jurgens
2025-11-19  7:55   ` Michael S. Tsirkin
2025-11-18 14:38 ` [PATCH net-next v11 06/12] virtio_net: Create a FF group for ethtool steering Daniel Jurgens
2025-11-19  9:36   ` Michael S. Tsirkin
2025-11-19 17:14     ` Dan Jurgens
2025-11-18 14:38 ` [PATCH net-next v11 07/12] virtio_net: Implement layer 2 ethtool flow rules Daniel Jurgens
2025-11-18 19:01   ` Michael S. Tsirkin
2025-11-19  6:07     ` Dan Jurgens
2025-11-19  9:20     ` Michael S. Tsirkin
2025-11-19  9:26   ` Michael S. Tsirkin
2025-11-19 16:51     ` Dan Jurgens
2025-11-18 14:38 ` [PATCH net-next v11 08/12] virtio_net: Use existing classifier if possible Daniel Jurgens
2025-11-18 21:55   ` Michael S. Tsirkin
2025-11-19  6:26     ` Dan Jurgens
2025-11-19  6:35       ` Michael S. Tsirkin
2025-11-19  7:18         ` Dan Jurgens
2025-11-19  7:23           ` Michael S. Tsirkin
2025-11-19  7:33             ` Dan Jurgens
2025-11-19  7:41               ` Michael S. Tsirkin [this message]
2025-11-19 15:45                 ` Dan Jurgens
2025-11-19 15:58                   ` Michael S. Tsirkin
2025-11-19  7:42   ` Michael S. Tsirkin
2025-11-19  9:01   ` Michael S. Tsirkin
2025-11-18 14:38 ` [PATCH net-next v11 09/12] virtio_net: Implement IPv4 ethtool flow rules Daniel Jurgens
2025-11-18 21:31   ` Michael S. Tsirkin
2025-11-19  7:03     ` Dan Jurgens
2025-11-19  7:06       ` Michael S. Tsirkin
2025-11-19  7:17         ` Dan Jurgens
2025-11-19  7:20           ` Michael S. Tsirkin
2025-11-19  9:18     ` Michael S. Tsirkin
2025-11-19 16:33       ` Dan Jurgens
2025-11-19 16:51         ` Michael S. Tsirkin
2025-11-19 16:59           ` Dan Jurgens
2025-11-18 14:39 ` [PATCH net-next v11 10/12] virtio_net: Add support for IPv6 ethtool steering Daniel Jurgens
2025-11-18 21:45   ` Michael S. Tsirkin
2025-11-19  7:35     ` Dan Jurgens
2025-11-19  7:44       ` Michael S. Tsirkin
2025-11-18 21:48   ` Michael S. Tsirkin
2025-11-19 16:04     ` Dan Jurgens
2025-11-18 14:39 ` [PATCH net-next v11 11/12] virtio_net: Add support for TCP and UDP ethtool rules Daniel Jurgens
2025-11-19  9:14   ` Michael S. Tsirkin
2025-11-19 16:07     ` Dan Jurgens
2025-11-18 14:39 ` [PATCH net-next v11 12/12] virtio_net: Add get ethtool flow rules ops Daniel Jurgens
2025-11-18 18:49   ` Michael S. Tsirkin
2025-11-19 16:24     ` Dan Jurgens
2025-11-18 22:39   ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251119023904-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=danielj@nvidia.com \
    --cc=edumazet@google.com \
    --cc=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=jgg@ziepe.ca \
    --cc=kevin.tian@intel.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=parav@nvidia.com \
    --cc=shshitrit@nvidia.com \
    --cc=virtualization@lists.linux.dev \
    --cc=xuanzhuo@linux.alibaba.com \
    --cc=yohadt@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.