All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: "Nelson, Shannon" <shannon.nelson@amd.com>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	andrew.gospodarek@broadcom.com, aron.silverton@oracle.com,
	dan.j.williams@intel.com, daniel.vetter@ffwll.ch,
	dave.jiang@intel.com, dsahern@kernel.org, gospo@broadcom.com,
	hch@infradead.org, itayavr@nvidia.com, jiri@nvidia.com,
	kuba@kernel.org, lbloch@nvidia.com, leonro@nvidia.com,
	saeedm@nvidia.com, linux-cxl@vger.kernel.org,
	linux-rdma@vger.kernel.org, netdev@vger.kernel.org,
	brett.creeley@amd.com
Subject: Re: [RFC PATCH fwctl 3/5] pds_fwctl: initial driver framework
Date: Thu, 13 Feb 2025 20:55:20 -0400	[thread overview]
Message-ID: <20250214005520.GE3886819@nvidia.com> (raw)
In-Reply-To: <3d9b8966-8ad6-43ee-a745-073a5c82554b@amd.com>

On Thu, Feb 13, 2025 at 03:06:14PM -0800, Nelson, Shannon wrote:

> > > +/**
> > > + * struct pds_fwctl_cmd - Firmware control command structure
> > > + * @opcode: Opcode
> > > + * @rsvd:   Word boundary padding
> > > + * @ep:     Endpoint identifier.
> > > + * @op:     Operation identifier.
> > > + */
> > > +struct pds_fwctl_cmd {
> > > +     u8     opcode;
> > > +     u8     rsvd[3];
> > > +     __le32 ep;
> > > +     __le32 op;
> > > +} __packed;
> > None of these actually need to be packed given explicit padding to
> > natural alignment of all fields.  Arguably it does no harm though
> > so up to you.
> 
> Old belt-and-suspenders habits...

In that case it is worth knowing that __packed also changes the
assumed alignment of the struct. You can access a __packed struct at
any byte.

On x86 this is mostly meaningless, but on other arches it can effect
code generation as the compiler will have to assume that, say, a 64
bit load is not naturally aligned and emit a more expensive sequence
to load it.

Which is why you occasionally see things like:
  __attribute__ ((packed,aligned(8)));

Which says that there is no padding inside the struct, but also that
the compiler can assume a guaranteed starting alignment for the
memory.

Jason

  reply	other threads:[~2025-02-14  0:55 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-11 23:48 [RFC PATCH fwctl 0/5] pds_fwctl: fwctl for AMD/Pensando core devices Shannon Nelson
2025-02-11 23:48 ` [RFC PATCH fwctl 1/5] pds_core: specify auxiliary_device to be created Shannon Nelson
2025-02-12 11:57   ` Jonathan Cameron
2025-02-13 22:44     ` Nelson, Shannon
2025-02-11 23:48 ` [RFC PATCH fwctl 2/5] pds_core: add new fwctl auxilary_device Shannon Nelson
2025-02-12 12:02   ` Jonathan Cameron
2025-02-13 22:48     ` Nelson, Shannon
2025-02-12 12:03   ` Jonathan Cameron
2025-02-13 22:49     ` Nelson, Shannon
2025-02-18 19:28   ` Leon Romanovsky
2025-02-18 20:00     ` Nelson, Shannon
2025-02-19  8:24       ` Leon Romanovsky
2025-02-20 23:20         ` Nelson, Shannon
2025-02-22 18:26           ` Leon Romanovsky
2025-02-11 23:48 ` [RFC PATCH fwctl 3/5] pds_fwctl: initial driver framework Shannon Nelson
2025-02-12 12:22   ` Jonathan Cameron
2025-02-13 23:06     ` Nelson, Shannon
2025-02-14  0:55       ` Jason Gunthorpe [this message]
2025-02-12 23:26   ` Dave Jiang
2025-02-13 23:31     ` Nelson, Shannon
2025-02-18 19:51   ` Leon Romanovsky
2025-02-18 22:19     ` Nelson, Shannon
2025-02-19  8:25       ` Leon Romanovsky
2025-02-20 23:27         ` Nelson, Shannon
2025-02-22 18:29           ` Leon Romanovsky
2025-02-11 23:48 ` [RFC PATCH fwctl 4/5] pds_fwctl: add rpc and query support Shannon Nelson
2025-02-12 12:47   ` Jonathan Cameron
2025-02-13 23:13     ` Nelson, Shannon
2025-02-13  1:02   ` Dave Jiang
2025-02-13 23:34     ` Nelson, Shannon
2025-02-11 23:48 ` [RFC PATCH fwctl 5/5] pds_fwctl: add Documentation entries Shannon Nelson
2025-02-12 12:51   ` Jonathan Cameron
2025-02-12 13:13     ` Jason Gunthorpe
2025-02-12 14:23     ` Leon Romanovsky
2025-02-13 23:18     ` Nelson, Shannon
2025-02-12 13:40 ` [RFC PATCH fwctl 0/5] pds_fwctl: fwctl for AMD/Pensando core devices Andrew Lunn
2025-02-12 14:43   ` Jason Gunthorpe
2025-02-12 16:19     ` Andrew Lunn

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=20250214005520.GE3886819@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=aron.silverton@oracle.com \
    --cc=brett.creeley@amd.com \
    --cc=dan.j.williams@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dave.jiang@intel.com \
    --cc=dsahern@kernel.org \
    --cc=gospo@broadcom.com \
    --cc=hch@infradead.org \
    --cc=itayavr@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=lbloch@nvidia.com \
    --cc=leonro@nvidia.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=shannon.nelson@amd.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.