[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210310182307.zzcbi5w5jrmveld4@archlinux-ax161>
Date: Wed, 10 Mar 2021 11:23:07 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: Jens Axboe <axboe@...nel.dk>
Cc: linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
clang-built-linux@...glegroups.com
Subject: -Walign-mismatch in block/blk-mq.c
Hi Jens,
There is a new clang warning added in the development branch,
-Walign-mismatch, which shows an instance in block/blk-mq.c:
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);
^
1 warning generated.
There appears to be some history here as I can see that this member was
purposefully unaligned in commit 4ccafe032005 ("block: unalign
call_single_data in struct request"). However, I later see a change in
commit 7c3fb70f0341 ("block: rearrange a few request fields for better
cache layout") that seems somewhat related. Is it possible to get back
the alignment by rearranging the structure again? This seems to be the
only solution for the warning aside from just outright disabling it,
which would be a shame since it seems like it could be useful for
architectures that cannot handle unaligned accesses well, unless I am
missing something obvious :)
Cheers,
Nathan
Powered by blists - more mailing lists