From: Jani Nikula <jani.nikula@intel.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Arnd Bergmann" <arnd@arndb.de>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Sudip Mukherjee" <sudipm.mukherjee@gmail.com>,
"Russell King" <linux@armlinux.org.uk>,
"Viresh Kumar" <vireshk@kernel.org>,
"Shiraz Hashim" <shiraz.linux.kernel@gmail.com>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel@ffwll.ch>,
dri-devel <dri-devel@lists.freedesktop.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
"SoC Team" <soc@kernel.org>,
"Julia Lawall" <Julia.Lawall@inria.fr>
Subject: Re: mainline build failure due to f1e4c916f97f ("drm/edid: add EDID block count and size helpers")
Date: Mon, 30 May 2022 17:08:11 +0300 [thread overview]
Message-ID: <874k17ru44.fsf@intel.com> (raw)
In-Reply-To: <CAK8P3a0HNOCOSx9UONw6gf1UUU8J4iAOmMFP8-DtJ3O7XAACsQ@mail.gmail.com>
On Mon, 30 May 2022, Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, May 30, 2022 at 3:10 PM Jani Nikula <jani.nikula@intel.com> wrote:
>> >
>> > I think in general, most __packed annotations we have in the kernel are
>> > completely pointless because they do not change the structure layout on
>> > any architecture but instead just make member access slower on
>>
>> Please explain.
>>
>> They are used quite a bit for parsing blob data, or
>> serialization/deserialization, like in the EDID case at hand. Try
>> removing __attribute__((packed)) from include/drm/drm_edid.h and see the
>> sizeof(struct edid) on any architecture.
>
> The annotations for edid are completely correct and necessary. However
> other driver authors just slap __packed annotations on any structure
> even if the layout is not fixed at all like:
Right. Thanks for the examples.
> struct my_driver_priv {
> struct device dev;
> u8 causes_misalignment;
> spinlock_t lock;
> atomic_t counter;
> } __packed; /* this annotation is harmful because it breaks the atomics */
I wonder if this is something that could be caught with coccinelle. Or
sparse. Are there any cases where this combo is necessary? (I can't
think of any, but it's a low bar. ;)
Cc: Julia.
> or if the annotation does not change the layout like
>
> struct my_dma_descriptor {
> __le64 address;
> __le64 length;
> } __packed; /* does not change layout but makes access slow on some
> architectures */
Why is this the case, though? I'd imagine the compiler could figure this
out.
BR,
Jani.
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Arnd Bergmann" <arnd@arndb.de>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Sudip Mukherjee" <sudipm.mukherjee@gmail.com>,
"Russell King" <linux@armlinux.org.uk>,
"Viresh Kumar" <vireshk@kernel.org>,
"Shiraz Hashim" <shiraz.linux.kernel@gmail.com>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel@ffwll.ch>,
dri-devel <dri-devel@lists.freedesktop.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
"SoC Team" <soc@kernel.org>,
"Julia Lawall" <Julia.Lawall@inria.fr>
Subject: Re: mainline build failure due to f1e4c916f97f ("drm/edid: add EDID block count and size helpers")
Date: Mon, 30 May 2022 17:08:11 +0300 [thread overview]
Message-ID: <874k17ru44.fsf@intel.com> (raw)
In-Reply-To: <CAK8P3a0HNOCOSx9UONw6gf1UUU8J4iAOmMFP8-DtJ3O7XAACsQ@mail.gmail.com>
On Mon, 30 May 2022, Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, May 30, 2022 at 3:10 PM Jani Nikula <jani.nikula@intel.com> wrote:
>> >
>> > I think in general, most __packed annotations we have in the kernel are
>> > completely pointless because they do not change the structure layout on
>> > any architecture but instead just make member access slower on
>>
>> Please explain.
>>
>> They are used quite a bit for parsing blob data, or
>> serialization/deserialization, like in the EDID case at hand. Try
>> removing __attribute__((packed)) from include/drm/drm_edid.h and see the
>> sizeof(struct edid) on any architecture.
>
> The annotations for edid are completely correct and necessary. However
> other driver authors just slap __packed annotations on any structure
> even if the layout is not fixed at all like:
Right. Thanks for the examples.
> struct my_driver_priv {
> struct device dev;
> u8 causes_misalignment;
> spinlock_t lock;
> atomic_t counter;
> } __packed; /* this annotation is harmful because it breaks the atomics */
I wonder if this is something that could be caught with coccinelle. Or
sparse. Are there any cases where this combo is necessary? (I can't
think of any, but it's a low bar. ;)
Cc: Julia.
> or if the annotation does not change the layout like
>
> struct my_dma_descriptor {
> __le64 address;
> __le64 length;
> } __packed; /* does not change layout but makes access slow on some
> architectures */
Why is this the case, though? I'd imagine the compiler could figure this
out.
BR,
Jani.
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Linux ARM <linux-arm-kernel@lists.infradead.org>,
Arnd Bergmann <arnd@arndb.de>, David Airlie <airlied@linux.ie>,
Viresh Kumar <vireshk@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Julia Lawall <Julia.Lawall@inria.fr>,
Linus Torvalds <torvalds@linux-foundation.org>,
SoC Team <soc@kernel.org>,
dri-devel <dri-devel@lists.freedesktop.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Shiraz Hashim <shiraz.linux.kernel@gmail.com>,
Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Subject: Re: mainline build failure due to f1e4c916f97f ("drm/edid: add EDID block count and size helpers")
Date: Mon, 30 May 2022 17:08:11 +0300 [thread overview]
Message-ID: <874k17ru44.fsf@intel.com> (raw)
In-Reply-To: <CAK8P3a0HNOCOSx9UONw6gf1UUU8J4iAOmMFP8-DtJ3O7XAACsQ@mail.gmail.com>
On Mon, 30 May 2022, Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, May 30, 2022 at 3:10 PM Jani Nikula <jani.nikula@intel.com> wrote:
>> >
>> > I think in general, most __packed annotations we have in the kernel are
>> > completely pointless because they do not change the structure layout on
>> > any architecture but instead just make member access slower on
>>
>> Please explain.
>>
>> They are used quite a bit for parsing blob data, or
>> serialization/deserialization, like in the EDID case at hand. Try
>> removing __attribute__((packed)) from include/drm/drm_edid.h and see the
>> sizeof(struct edid) on any architecture.
>
> The annotations for edid are completely correct and necessary. However
> other driver authors just slap __packed annotations on any structure
> even if the layout is not fixed at all like:
Right. Thanks for the examples.
> struct my_driver_priv {
> struct device dev;
> u8 causes_misalignment;
> spinlock_t lock;
> atomic_t counter;
> } __packed; /* this annotation is harmful because it breaks the atomics */
I wonder if this is something that could be caught with coccinelle. Or
sparse. Are there any cases where this combo is necessary? (I can't
think of any, but it's a low bar. ;)
Cc: Julia.
> or if the annotation does not change the layout like
>
> struct my_dma_descriptor {
> __le64 address;
> __le64 length;
> } __packed; /* does not change layout but makes access slow on some
> architectures */
Why is this the case, though? I'd imagine the compiler could figure this
out.
BR,
Jani.
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2022-05-30 14:08 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-27 9:07 mainline build failure due to f1e4c916f97f ("drm/edid: add EDID block count and size helpers") Sudip Mukherjee
2022-05-27 9:07 ` Sudip Mukherjee
2022-05-27 18:56 ` Linus Torvalds
2022-05-27 18:56 ` Linus Torvalds
2022-05-27 23:40 ` Sudip Mukherjee
2022-05-27 23:40 ` Sudip Mukherjee
2022-05-28 1:04 ` Linus Torvalds
2022-05-28 1:04 ` Linus Torvalds
2022-05-28 10:07 ` Sudip Mukherjee
2022-05-28 10:07 ` Sudip Mukherjee
2022-05-28 12:13 ` Sudip Mukherjee
2022-05-28 12:13 ` Sudip Mukherjee
2022-05-28 17:40 ` Linus Torvalds
2022-05-28 17:40 ` Linus Torvalds
2022-05-28 18:08 ` Linus Torvalds
2022-05-28 18:08 ` Linus Torvalds
2022-05-28 18:08 ` Linus Torvalds
2022-05-28 18:58 ` Arnd Bergmann
2022-05-28 18:58 ` Arnd Bergmann
2022-05-28 18:58 ` Arnd Bergmann
2022-05-28 20:31 ` Linus Torvalds
2022-05-28 20:31 ` Linus Torvalds
2022-05-28 20:31 ` Linus Torvalds
2022-05-28 21:08 ` Arnd Bergmann
2022-05-28 21:08 ` Arnd Bergmann
2022-05-28 21:08 ` Arnd Bergmann
2022-05-30 9:31 ` Jani Nikula
2022-05-30 9:31 ` Jani Nikula
2022-05-30 9:31 ` Jani Nikula
2022-05-30 9:33 ` Jani Nikula
2022-05-30 9:33 ` Jani Nikula
2022-05-30 9:33 ` Jani Nikula
2022-05-30 12:43 ` Arnd Bergmann
2022-05-30 12:43 ` Arnd Bergmann
2022-05-30 12:43 ` Arnd Bergmann
2022-05-30 13:10 ` Jani Nikula
2022-05-30 13:10 ` Jani Nikula
2022-05-30 13:10 ` Jani Nikula
2022-05-30 13:35 ` Arnd Bergmann
2022-05-30 13:35 ` Arnd Bergmann
2022-05-30 14:08 ` Jani Nikula [this message]
2022-05-30 14:08 ` Jani Nikula
2022-05-30 14:08 ` Jani Nikula
2022-05-30 14:26 ` Arnd Bergmann
2022-05-30 14:26 ` Arnd Bergmann
2022-05-30 14:26 ` Arnd Bergmann
2022-05-31 6:26 ` Julia Lawall
2022-05-31 6:26 ` Julia Lawall
2022-05-31 6:26 ` Julia Lawall
2022-05-31 8:04 ` Arnd Bergmann
2022-05-31 8:04 ` Arnd Bergmann
2022-05-31 8:04 ` Arnd Bergmann
2022-05-31 16:41 ` Linus Torvalds
2022-05-31 16:41 ` Linus Torvalds
2022-05-31 16:41 ` Linus Torvalds
2022-06-01 22:28 ` Keisuke Nishimura
2022-06-01 22:28 ` Keisuke Nishimura
2022-06-01 22:28 ` Keisuke Nishimura
2022-06-02 1:08 ` Linus Torvalds
2022-06-02 1:08 ` Linus Torvalds
2022-06-02 1:08 ` Linus Torvalds
2022-06-02 7:38 ` Arnd Bergmann
2022-06-02 7:38 ` Arnd Bergmann
2022-06-02 7:38 ` Arnd Bergmann
2022-06-02 11:21 ` Tetsuo Handa
2022-06-02 11:21 ` Tetsuo Handa
2022-06-02 11:21 ` Tetsuo Handa
2022-06-02 12:11 ` Arnd Bergmann
2022-06-02 12:11 ` Arnd Bergmann
2022-06-02 12:11 ` Arnd Bergmann
2022-06-02 13:18 ` Ard Biesheuvel
2022-06-02 13:18 ` Ard Biesheuvel
2022-06-02 13:18 ` Ard Biesheuvel
2022-06-02 12:19 ` Christoph Hellwig
2022-06-02 12:19 ` Christoph Hellwig
2022-06-06 10:51 ` Keisuke Nishimura
2022-06-06 10:51 ` Keisuke Nishimura
2022-06-06 10:51 ` Keisuke Nishimura
2022-05-30 16:56 ` Russell King (Oracle)
2022-05-30 16:56 ` Russell King (Oracle)
2022-05-30 16:56 ` Russell King (Oracle)
2022-05-30 16:54 ` Russell King (Oracle)
2022-05-30 16:54 ` Russell King (Oracle)
2022-05-30 16:54 ` Russell King (Oracle)
2022-05-30 16:53 ` Russell King (Oracle)
2022-05-30 16:53 ` Russell King (Oracle)
2022-05-30 16:53 ` Russell King (Oracle)
2022-05-28 20:32 ` Russell King (Oracle)
2022-05-28 20:32 ` Russell King (Oracle)
2022-05-28 20:32 ` Russell King (Oracle)
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=874k17ru44.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=Julia.Lawall@inria.fr \
--cc=airlied@linux.ie \
--cc=arnd@arndb.de \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=shiraz.linux.kernel@gmail.com \
--cc=soc@kernel.org \
--cc=sudipm.mukherjee@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=tzimmermann@suse.de \
--cc=ville.syrjala@linux.intel.com \
--cc=vireshk@kernel.org \
/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.