linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@kernel.org>
To: "Huang, Ying" <ying.huang@intel.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Jens Axboe <axboe@kernel.dk>, Jian Cai <jiancai@google.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Peter Zijlstra <peterz@infradead.org>,
	Borislav Petkov <bp@suse.de>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Thomas Gleixner <tglx@linutronix.de>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Ingo Molnar <mingo@kernel.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	He Ying <heying24@huawei.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	clang-built-linux <clang-built-linux@googlegroups.com>
Subject: Re: [PATCH] [v2] smp: fix smp_call_function_single_async prototype
Date: Thu, 6 May 2021 09:54:55 +0200	[thread overview]
Message-ID: <CAK8P3a1SBDXqHE5FgG_WfzrcbeT6V6kg5T+xTGU8Cp_vLLdMqA@mail.gmail.com> (raw)
In-Reply-To: <87czu4slom.fsf@yhuang6-desk1.ccr.corp.intel.com>

On Thu, May 6, 2021 at 3:20 AM Huang, Ying <ying.huang@intel.com> wrote:
>
> Arnd Bergmann <arnd@kernel.org> writes:
>
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > As of commit 966a967116e6 ("smp: Avoid using two cache lines for struct
> > call_single_data"), the smp code prefers 32-byte aligned call_single_data
> > objects for performance reasons, but the block layer includes an instance
> > of this structure in the main 'struct request' that is more senstive
> > to size than to performance here, see 4ccafe032005 ("block: unalign
> > call_single_data in struct request").
> >
> > The result is a violation of the calling conventions that clang correctly
> > points out:
> >
> > block/blk-mq.c:630:39: warning: passing 8-byte aligned argument to 32-byte aligned parameter 2 of 'smp_call_function_single_async' may result in an unaligned pointer access [-Walign-mismatch]
> >                 smp_call_function_single_async(cpu, &rq->csd);
>
> Can this be silenced by
>
>                 smp_call_function_single_async(cpu, (call_single_data_t *)&rq->csd);

Probably, but casting from smaller alignment to larger alignment is undefined
behavior and I'd rather not go there in case this triggers some runtime
misbehavior or ubsan check in the future. Making the function accept a
pointer with the smaller alignment avoids getting into undefined behavior
and doesn't require a cast.

       Arnd

  reply	other threads:[~2021-05-06  7:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-05 21:12 [PATCH] [v2] smp: fix smp_call_function_single_async prototype Arnd Bergmann
2021-05-06  1:19 ` Huang, Ying
2021-05-06  7:54   ` Arnd Bergmann [this message]
2021-05-06  8:14     ` Huang, Ying
2021-05-06  8:30       ` Arnd Bergmann
2021-05-06 12:03         ` Huang, Ying
2021-05-06 14:30           ` Arnd Bergmann
2021-05-06 10:10 ` Peter Zijlstra
2021-05-06 13:48 ` [tip: locking/urgent] smp: Fix " tip-bot2 for Arnd Bergmann

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=CAK8P3a1SBDXqHE5FgG_WfzrcbeT6V6kg5T+xTGU8Cp_vLLdMqA@mail.gmail.com \
    --to=arnd@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=bp@suse.de \
    --cc=clang-built-linux@googlegroups.com \
    --cc=eric.dumazet@gmail.com \
    --cc=frederic@kernel.org \
    --cc=heying24@huawei.com \
    --cc=jgross@suse.com \
    --cc=jiancai@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mingo@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=ying.huang@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).