Re: [PATCH] blk-mq: fix alignment mismatch.

2021-04-08 Thread Jian Cai
Sounds good! Thanks for the help and the link.

On Thu, Apr 8, 2021 at 11:12 AM Nathan Chancellor  wrote:
>
> Hi Jian,
>
> On Thu, Apr 08, 2021 at 10:57:54AM -0700, Jian Cai wrote:
> > So this issue is blocking the LLVM upgrading on ChromeOS. Nathan, do
> > you mind sending out the smaller patch like Nick suggested just to see
> > what feedback we could get? I could send it for you if you are busy,
> > and please let me know what tags I should use in that case.
> >
> > Thanks,
> > Jian
>
> I will go ahead and send the smaller patch at some point today.
>
> For what it's worth, Nick brought up https://reviews.llvm.org/D100037,
> which may be relevant here.
>
> Cheers,
> Nathan
>
> > On Wed, Mar 31, 2021 at 3:06 PM Nick Desaulniers
> >  wrote:
> > >
> > > On Wed, Mar 31, 2021 at 2:58 PM Nathan Chancellor  
> > > wrote:
> > > >
> > > > On Wed, Mar 31, 2021 at 02:27:03PM -0700, Jian Cai wrote:
> > > > >
> > > > > I just realized you already proposed solutions for skipping the check
> > > > > in 
> > > > > https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
> > > > > Do you have any plans to send them for review?
> > > >
> > > > I was hoping to gather some feedback on which option would be preferred
> > > > by Jens and the other ClangBuiltLinux folks before I sent them along. I
> > > > can send the first just to see what kind of feedback I can gather.
> > >
> > > Either approach is fine by me. The smaller might be easier to get
> > > accepted into stable. The larger approach will probably become more
> > > useful in the future (having the diag infra work properly with clang).
> > > I think the ball is kind of in Jens' court to decide.  Would doing
> > > both be appropriate, Jens? Have the smaller patch tagged for stable
> > > disabling it for the whole file, then another commit on top not tagged
> > > for stable that adds the diag infra, and a third on top replacing the
> > > file level warning disablement with local diags to isolate this down
> > > to one case?  It's a fair but small amount of churn IMO; but if Jens
> > > is not opposed it seems fine?
> > > --
> > > Thanks,
> > > ~Nick Desaulniers


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-04-08 Thread Nathan Chancellor
Hi Jian,

On Thu, Apr 08, 2021 at 10:57:54AM -0700, Jian Cai wrote:
> So this issue is blocking the LLVM upgrading on ChromeOS. Nathan, do
> you mind sending out the smaller patch like Nick suggested just to see
> what feedback we could get? I could send it for you if you are busy,
> and please let me know what tags I should use in that case.
> 
> Thanks,
> Jian

I will go ahead and send the smaller patch at some point today.

For what it's worth, Nick brought up https://reviews.llvm.org/D100037,
which may be relevant here.

Cheers,
Nathan

> On Wed, Mar 31, 2021 at 3:06 PM Nick Desaulniers
>  wrote:
> >
> > On Wed, Mar 31, 2021 at 2:58 PM Nathan Chancellor  wrote:
> > >
> > > On Wed, Mar 31, 2021 at 02:27:03PM -0700, Jian Cai wrote:
> > > >
> > > > I just realized you already proposed solutions for skipping the check
> > > > in 
> > > > https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
> > > > Do you have any plans to send them for review?
> > >
> > > I was hoping to gather some feedback on which option would be preferred
> > > by Jens and the other ClangBuiltLinux folks before I sent them along. I
> > > can send the first just to see what kind of feedback I can gather.
> >
> > Either approach is fine by me. The smaller might be easier to get
> > accepted into stable. The larger approach will probably become more
> > useful in the future (having the diag infra work properly with clang).
> > I think the ball is kind of in Jens' court to decide.  Would doing
> > both be appropriate, Jens? Have the smaller patch tagged for stable
> > disabling it for the whole file, then another commit on top not tagged
> > for stable that adds the diag infra, and a third on top replacing the
> > file level warning disablement with local diags to isolate this down
> > to one case?  It's a fair but small amount of churn IMO; but if Jens
> > is not opposed it seems fine?
> > --
> > Thanks,
> > ~Nick Desaulniers


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-04-08 Thread Jian Cai
So this issue is blocking the LLVM upgrading on ChromeOS. Nathan, do
you mind sending out the smaller patch like Nick suggested just to see
what feedback we could get? I could send it for you if you are busy,
and please let me know what tags I should use in that case.

Thanks,
Jian

On Wed, Mar 31, 2021 at 3:06 PM Nick Desaulniers
 wrote:
>
> On Wed, Mar 31, 2021 at 2:58 PM Nathan Chancellor  wrote:
> >
> > On Wed, Mar 31, 2021 at 02:27:03PM -0700, Jian Cai wrote:
> > >
> > > I just realized you already proposed solutions for skipping the check
> > > in 
> > > https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
> > > Do you have any plans to send them for review?
> >
> > I was hoping to gather some feedback on which option would be preferred
> > by Jens and the other ClangBuiltLinux folks before I sent them along. I
> > can send the first just to see what kind of feedback I can gather.
>
> Either approach is fine by me. The smaller might be easier to get
> accepted into stable. The larger approach will probably become more
> useful in the future (having the diag infra work properly with clang).
> I think the ball is kind of in Jens' court to decide.  Would doing
> both be appropriate, Jens? Have the smaller patch tagged for stable
> disabling it for the whole file, then another commit on top not tagged
> for stable that adds the diag infra, and a third on top replacing the
> file level warning disablement with local diags to isolate this down
> to one case?  It's a fair but small amount of churn IMO; but if Jens
> is not opposed it seems fine?
> --
> Thanks,
> ~Nick Desaulniers


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-31 Thread Nick Desaulniers
On Wed, Mar 31, 2021 at 2:58 PM Nathan Chancellor  wrote:
>
> On Wed, Mar 31, 2021 at 02:27:03PM -0700, Jian Cai wrote:
> >
> > I just realized you already proposed solutions for skipping the check
> > in 
> > https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
> > Do you have any plans to send them for review?
>
> I was hoping to gather some feedback on which option would be preferred
> by Jens and the other ClangBuiltLinux folks before I sent them along. I
> can send the first just to see what kind of feedback I can gather.

Either approach is fine by me. The smaller might be easier to get
accepted into stable. The larger approach will probably become more
useful in the future (having the diag infra work properly with clang).
I think the ball is kind of in Jens' court to decide.  Would doing
both be appropriate, Jens? Have the smaller patch tagged for stable
disabling it for the whole file, then another commit on top not tagged
for stable that adds the diag infra, and a third on top replacing the
file level warning disablement with local diags to isolate this down
to one case?  It's a fair but small amount of churn IMO; but if Jens
is not opposed it seems fine?
-- 
Thanks,
~Nick Desaulniers


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-31 Thread Nathan Chancellor
Hi Jian,

On Wed, Mar 31, 2021 at 02:27:03PM -0700, Jian Cai wrote:
> Hi Nathan,
> 
> I just realized you already proposed solutions for skipping the check
> in 
> https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
> Do you have any plans to send them for review?
> 
> Thanks,
> Jian

I was hoping to gather some feedback on which option would be preferred
by Jens and the other ClangBuiltLinux folks before I sent them along. I
can send the first just to see what kind of feedback I can gather.

Cheers,
Nathan

> On Tue, Mar 30, 2021 at 6:31 PM Jian Cai  wrote:
> >
> > Thanks for all the information. I'll check for similar instances and
> > send an updated version.
> >
> >
> > On Tue, Mar 30, 2021 at 5:26 PM Guenter Roeck  wrote:
> > >
> > > On 3/30/21 4:29 PM, Nathan Chancellor wrote:
> > > > Hi Jian,
> > > >
> > > > On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> > > >> This fixes the mismatch of alignments between csd and its use as an
> > > >> argument to smp_call_function_single_async, which causes build failure
> > > >> when -Walign-mismatch in Clang is used.
> > > >>
> > > >> Link:
> > > >> http://crrev.com/c/1193732
> > > >>
> > > >> Suggested-by: Guenter Roeck 
> > > >> Signed-off-by: Jian Cai 
> > > >
> > > > Thanks for the patch. This is effectively a revert of commit
> > > > 4ccafe032005 ("block: unalign call_single_data in struct request"),
> > > > which I had brought up in this thread:
> > > >
> > > > https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/
> > > >
> > > > This is obviously a correct fix, I am not just sure what the impact to
> > > > 'struct request' will be.
> > > >
> > >
> > > As commit 4ccafe032005 states, it increases the request structure size.
> > > Given the exchange referenced above, I think we'll need to disable
> > > the warning in the block code.
> > >
> > > Thanks,
> > > Guenter
> > >
> > > > Cheers,
> > > > Nathan
> > > >
> > > >> ---
> > > >>  include/linux/blkdev.h | 2 +-
> > > >>  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >>
> > > >> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> > > >> index bc6bc8383b43..3b92330d95ad 100644
> > > >> --- a/include/linux/blkdev.h
> > > >> +++ b/include/linux/blkdev.h
> > > >> @@ -231,7 +231,7 @@ struct request {
> > > >>  unsigned long deadline;
> > > >>
> > > >>  union {
> > > >> -struct __call_single_data csd;
> > > >> +call_single_data_t csd;
> > > >>  u64 fifo_time;
> > > >>  };
> > > >>
> > > >> --
> > > >> 2.31.0.291.g576ba9dcdaf-goog
> > > >>
> > >


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-31 Thread Jian Cai
Hi Nathan,

I just realized you already proposed solutions for skipping the check
in 
https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
Do you have any plans to send them for review?

Thanks,
Jian

On Tue, Mar 30, 2021 at 6:31 PM Jian Cai  wrote:
>
> Thanks for all the information. I'll check for similar instances and
> send an updated version.
>
>
> On Tue, Mar 30, 2021 at 5:26 PM Guenter Roeck  wrote:
> >
> > On 3/30/21 4:29 PM, Nathan Chancellor wrote:
> > > Hi Jian,
> > >
> > > On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> > >> This fixes the mismatch of alignments between csd and its use as an
> > >> argument to smp_call_function_single_async, which causes build failure
> > >> when -Walign-mismatch in Clang is used.
> > >>
> > >> Link:
> > >> http://crrev.com/c/1193732
> > >>
> > >> Suggested-by: Guenter Roeck 
> > >> Signed-off-by: Jian Cai 
> > >
> > > Thanks for the patch. This is effectively a revert of commit
> > > 4ccafe032005 ("block: unalign call_single_data in struct request"),
> > > which I had brought up in this thread:
> > >
> > > https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/
> > >
> > > This is obviously a correct fix, I am not just sure what the impact to
> > > 'struct request' will be.
> > >
> >
> > As commit 4ccafe032005 states, it increases the request structure size.
> > Given the exchange referenced above, I think we'll need to disable
> > the warning in the block code.
> >
> > Thanks,
> > Guenter
> >
> > > Cheers,
> > > Nathan
> > >
> > >> ---
> > >>  include/linux/blkdev.h | 2 +-
> > >>  1 file changed, 1 insertion(+), 1 deletion(-)
> > >>
> > >> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> > >> index bc6bc8383b43..3b92330d95ad 100644
> > >> --- a/include/linux/blkdev.h
> > >> +++ b/include/linux/blkdev.h
> > >> @@ -231,7 +231,7 @@ struct request {
> > >>  unsigned long deadline;
> > >>
> > >>  union {
> > >> -struct __call_single_data csd;
> > >> +call_single_data_t csd;
> > >>  u64 fifo_time;
> > >>  };
> > >>
> > >> --
> > >> 2.31.0.291.g576ba9dcdaf-goog
> > >>
> >


RE: [PATCH] blk-mq: fix alignment mismatch.

2021-03-31 Thread David Laight
From: Nathan Chancellor
> Sent: 31 March 2021 00:30
> 
> Hi Jian,
> 
> On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> > This fixes the mismatch of alignments between csd and its use as an
> > argument to smp_call_function_single_async, which causes build failure
> > when -Walign-mismatch in Clang is used.
> >
> > Link:
> > http://crrev.com/c/1193732
> >
> > Suggested-by: Guenter Roeck 
> > Signed-off-by: Jian Cai 
> 
> Thanks for the patch. This is effectively a revert of commit
> 4ccafe032005 ("block: unalign call_single_data in struct request"),
> which I had brought up in this thread:
> 
> https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/
> 
> This is obviously a correct fix, I am not just sure what the impact to
> 'struct request' will be.

If the structure is allocated on-stack then aligning it
requires the compiler generate the rather horrid
'double stack frame' for the function.

Possibly the unaligned 'struct' should be used by all
the code except for a few places where it makes sense
to allocate an aligned item?

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)



Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-30 Thread Jian Cai
Thanks for all the information. I'll check for similar instances and
send an updated version.


On Tue, Mar 30, 2021 at 5:26 PM Guenter Roeck  wrote:
>
> On 3/30/21 4:29 PM, Nathan Chancellor wrote:
> > Hi Jian,
> >
> > On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> >> This fixes the mismatch of alignments between csd and its use as an
> >> argument to smp_call_function_single_async, which causes build failure
> >> when -Walign-mismatch in Clang is used.
> >>
> >> Link:
> >> http://crrev.com/c/1193732
> >>
> >> Suggested-by: Guenter Roeck 
> >> Signed-off-by: Jian Cai 
> >
> > Thanks for the patch. This is effectively a revert of commit
> > 4ccafe032005 ("block: unalign call_single_data in struct request"),
> > which I had brought up in this thread:
> >
> > https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/
> >
> > This is obviously a correct fix, I am not just sure what the impact to
> > 'struct request' will be.
> >
>
> As commit 4ccafe032005 states, it increases the request structure size.
> Given the exchange referenced above, I think we'll need to disable
> the warning in the block code.
>
> Thanks,
> Guenter
>
> > Cheers,
> > Nathan
> >
> >> ---
> >>  include/linux/blkdev.h | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> >> index bc6bc8383b43..3b92330d95ad 100644
> >> --- a/include/linux/blkdev.h
> >> +++ b/include/linux/blkdev.h
> >> @@ -231,7 +231,7 @@ struct request {
> >>  unsigned long deadline;
> >>
> >>  union {
> >> -struct __call_single_data csd;
> >> +call_single_data_t csd;
> >>  u64 fifo_time;
> >>  };
> >>
> >> --
> >> 2.31.0.291.g576ba9dcdaf-goog
> >>
>


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-30 Thread Guenter Roeck
On 3/30/21 4:29 PM, Nathan Chancellor wrote:
> Hi Jian,
> 
> On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
>> This fixes the mismatch of alignments between csd and its use as an
>> argument to smp_call_function_single_async, which causes build failure
>> when -Walign-mismatch in Clang is used.
>>
>> Link:
>> http://crrev.com/c/1193732
>>
>> Suggested-by: Guenter Roeck 
>> Signed-off-by: Jian Cai 
> 
> Thanks for the patch. This is effectively a revert of commit
> 4ccafe032005 ("block: unalign call_single_data in struct request"),
> which I had brought up in this thread:
> 
> https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/
> 
> This is obviously a correct fix, I am not just sure what the impact to
> 'struct request' will be.
> 

As commit 4ccafe032005 states, it increases the request structure size.
Given the exchange referenced above, I think we'll need to disable
the warning in the block code.

Thanks,
Guenter

> Cheers,
> Nathan
> 
>> ---
>>  include/linux/blkdev.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
>> index bc6bc8383b43..3b92330d95ad 100644
>> --- a/include/linux/blkdev.h
>> +++ b/include/linux/blkdev.h
>> @@ -231,7 +231,7 @@ struct request {
>>  unsigned long deadline;
>>  
>>  union {
>> -struct __call_single_data csd;
>> +call_single_data_t csd;
>>  u64 fifo_time;
>>  };
>>  
>> -- 
>> 2.31.0.291.g576ba9dcdaf-goog
>>



Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-30 Thread Nathan Chancellor
Hi Jian,

On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> This fixes the mismatch of alignments between csd and its use as an
> argument to smp_call_function_single_async, which causes build failure
> when -Walign-mismatch in Clang is used.
> 
> Link:
> http://crrev.com/c/1193732
> 
> Suggested-by: Guenter Roeck 
> Signed-off-by: Jian Cai 

Thanks for the patch. This is effectively a revert of commit
4ccafe032005 ("block: unalign call_single_data in struct request"),
which I had brought up in this thread:

https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/

This is obviously a correct fix, I am not just sure what the impact to
'struct request' will be.

Cheers,
Nathan

> ---
>  include/linux/blkdev.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> index bc6bc8383b43..3b92330d95ad 100644
> --- a/include/linux/blkdev.h
> +++ b/include/linux/blkdev.h
> @@ -231,7 +231,7 @@ struct request {
>   unsigned long deadline;
>  
>   union {
> - struct __call_single_data csd;
> + call_single_data_t csd;
>   u64 fifo_time;
>   };
>  
> -- 
> 2.31.0.291.g576ba9dcdaf-goog
> 


Re: [PATCH] blk-mq: fix alignment mismatch.

2021-03-30 Thread Guenter Roeck
On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> This fixes the mismatch of alignments between csd and its use as an
> argument to smp_call_function_single_async, which causes build failure
> when -Walign-mismatch in Clang is used.
> 
> Link:
> http://crrev.com/c/1193732

That link does not work. You probably meant
http://crbug.com/1193732

You'll probably want drop the link and to copy the relevant information
directly into the patch description. Generate the error with an upstream
kernel and cut-and-paste the output here.

For others, the observed error message is:

block/blk-mq.c:622:44: error: passing 8-byte aligned argument to 32-byte
aligned parameter 2 of 'smp_call_function_single_async' may result
in an unaligned pointer access [-Werror,-Walign-mismatch]

Thanks,
Guenter

> 
> Suggested-by: Guenter Roeck 
> Signed-off-by: Jian Cai 
> ---
>  include/linux/blkdev.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> index bc6bc8383b43..3b92330d95ad 100644
> --- a/include/linux/blkdev.h
> +++ b/include/linux/blkdev.h
> @@ -231,7 +231,7 @@ struct request {
>   unsigned long deadline;
>  
>   union {
> - struct __call_single_data csd;
> + call_single_data_t csd;
>   u64 fifo_time;
>   };
>  
> -- 
> 2.31.0.291.g576ba9dcdaf-goog
> 


[PATCH] blk-mq: fix alignment mismatch.

2021-03-30 Thread Jian Cai
This fixes the mismatch of alignments between csd and its use as an
argument to smp_call_function_single_async, which causes build failure
when -Walign-mismatch in Clang is used.

Link:
http://crrev.com/c/1193732

Suggested-by: Guenter Roeck 
Signed-off-by: Jian Cai 
---
 include/linux/blkdev.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index bc6bc8383b43..3b92330d95ad 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -231,7 +231,7 @@ struct request {
unsigned long deadline;
 
union {
-   struct __call_single_data csd;
+   call_single_data_t csd;
u64 fifo_time;
};
 
-- 
2.31.0.291.g576ba9dcdaf-goog