linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
@ 2018-11-03 15:39 Arnd Bergmann
  2018-11-03 20:41 ` Nikolay Borisov
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Arnd Bergmann @ 2018-11-03 15:39 UTC (permalink / raw)
  To: Chris Mason, Josef Bacik, David Sterba
  Cc: Arnd Bergmann, Changbin Du, Anand Jain, Nikolay Borisov,
	Misono Tomohiro, Qu Wenruo, Gu Jinxiang, linux-btrfs,
	linux-kernel

On 32-bit ARM with gcc-8, I see a link error with the addition of the
CONFIG_NO_AUTO_INLINE option:

fs/btrfs/super.o: In function `btrfs_statfs':
super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to `__aeabi_uldivmod' follow

So far this is the only file that shows the behavior, so I'd propose
to just work around it by marking the functions as 'static inline'
that normally get inlined here.

The reference to __aeabi_uldivmod comes from a div_u64() which has an
optimization for a constant division that uses a straight '/' operator
when the result should be known to the compiler. My interpretation is
that as we turn off inlining, gcc still expects the result to be constant
but fails to use that constant value.

Cc: Changbin Du <changbin.du@gmail.com>
Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable compiler auto-inlining")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 fs/btrfs/super.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index c3c1e7bee49d..b7af0b8936ad 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1922,7 +1922,7 @@ static int btrfs_remount(struct super_block *sb, int *flags,
 }
 
 /* Used to sort the devices by max_avail(descending sort) */
-static int btrfs_cmp_device_free_bytes(const void *dev_info1,
+static inline int btrfs_cmp_device_free_bytes(const void *dev_info1,
 				       const void *dev_info2)
 {
 	if (((struct btrfs_device_info *)dev_info1)->max_avail >
@@ -1951,8 +1951,8 @@ static inline void btrfs_descending_sort_devices(
  * The helper to calc the free space on the devices that can be used to store
  * file data.
  */
-static int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
-				       u64 *free_bytes)
+static inline int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
+					      u64 *free_bytes)
 {
 	struct btrfs_device_info *devices_info;
 	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-03 15:39 [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Arnd Bergmann
@ 2018-11-03 20:41 ` Nikolay Borisov
  2018-11-03 21:25   ` Arnd Bergmann
  2018-11-04  0:38 ` Qu Wenruo
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Nikolay Borisov @ 2018-11-03 20:41 UTC (permalink / raw)
  To: Arnd Bergmann, Chris Mason, Josef Bacik, David Sterba
  Cc: Changbin Du, Anand Jain, Misono Tomohiro, Qu Wenruo, Gu Jinxiang,
	linux-btrfs, linux-kernel



On 3.11.18 г. 17:39 ч., Arnd Bergmann wrote:
> On 32-bit ARM with gcc-8, I see a link error with the addition of the
> CONFIG_NO_AUTO_INLINE option:
> 
> fs/btrfs/super.o: In function `btrfs_statfs':
> super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
> fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to `__aeabi_uldivmod' follow
> 
> So far this is the only file that shows the behavior, so I'd propose
> to just work around it by marking the functions as 'static inline'
> that normally get inlined here.
> 
> The reference to __aeabi_uldivmod comes from a div_u64() which has an
> optimization for a constant division that uses a straight '/' operator
> when the result should be known to the compiler. My interpretation is
> that as we turn off inlining, gcc still expects the result to be constant
> but fails to use that constant value.

I read this as "this is a compiler bug", no ? So you are providing a
hack around a compiler bug?

> 
> Cc: Changbin Du <changbin.du@gmail.com>
> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable compiler auto-inlining")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  fs/btrfs/super.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index c3c1e7bee49d..b7af0b8936ad 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -1922,7 +1922,7 @@ static int btrfs_remount(struct super_block *sb, int *flags,
>  }
>  
>  /* Used to sort the devices by max_avail(descending sort) */
> -static int btrfs_cmp_device_free_bytes(const void *dev_info1,
> +static inline int btrfs_cmp_device_free_bytes(const void *dev_info1,
>  				       const void *dev_info2)
>  {
>  	if (((struct btrfs_device_info *)dev_info1)->max_avail >
> @@ -1951,8 +1951,8 @@ static inline void btrfs_descending_sort_devices(
>   * The helper to calc the free space on the devices that can be used to store
>   * file data.
>   */
> -static int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> -				       u64 *free_bytes)
> +static inline int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> +					      u64 *free_bytes)
>  {
>  	struct btrfs_device_info *devices_info;
>  	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-03 20:41 ` Nikolay Borisov
@ 2018-11-03 21:25   ` Arnd Bergmann
  0 siblings, 0 replies; 10+ messages in thread
From: Arnd Bergmann @ 2018-11-03 21:25 UTC (permalink / raw)
  To: Nikolay Borisov
  Cc: Chris Mason, Josef Bacik, David Sterba, Changbin Du, Anand Jain,
	Misono Tomohiro, Qu Wenruo, Gu Jinxiang, linux-btrfs,
	linux-kernel

On 11/3/18, Nikolay Borisov <nborisov@suse.com> wrote:
> On 3.11.18 г. 17:39 ч., Arnd Bergmann wrote:
>> On 32-bit ARM with gcc-8, I see a link error with the addition of the
>> CONFIG_NO_AUTO_INLINE option:
>>
>> fs/btrfs/super.o: In function `btrfs_statfs':
>> super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
>> fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to
>> `__aeabi_uldivmod' follow
>>
>> So far this is the only file that shows the behavior, so I'd propose
>> to just work around it by marking the functions as 'static inline'
>> that normally get inlined here.
>>
>> The reference to __aeabi_uldivmod comes from a div_u64() which has an
>> optimization for a constant division that uses a straight '/' operator
>> when the result should be known to the compiler. My interpretation is
>> that as we turn off inlining, gcc still expects the result to be constant
>> but fails to use that constant value.
>
> I read this as "this is a compiler bug", no ? So you are providing a
> hack around a compiler bug?

Mostly, yes. The do_div() macro is really pushing the boundaries
of what we can expect the compiler to do in terms of optimizations,
and we've had problems with it in the past.

IIRC the gcc developers would not classify this as a bug because
the result of __builtin_constant_p() is not guaranteed to work the
way we expect, it just does so most of the time.

        Arnd

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-03 15:39 [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Arnd Bergmann
  2018-11-03 20:41 ` Nikolay Borisov
@ 2018-11-04  0:38 ` Qu Wenruo
  2018-11-04 22:32   ` Arnd Bergmann
  2018-11-05  9:20 ` Nikolay Borisov
  2018-11-05 14:37 ` Changbin Du
  3 siblings, 1 reply; 10+ messages in thread
From: Qu Wenruo @ 2018-11-04  0:38 UTC (permalink / raw)
  To: Arnd Bergmann, Chris Mason, David Sterba, Josef Bacik
  Cc: Gu Jinxiang, Changbin Du, Misono Tomohiro, Anand Jain,
	Nikolay Borisov, linux-btrfs, linux-kernel



On 2018/11/3 下午11:39, Arnd Bergmann wrote:
> On 32-bit ARM with gcc-8, I see a link error with the addition of the
> CONFIG_NO_AUTO_INLINE option:
> 
> fs/btrfs/super.o: In function `btrfs_statfs':
> super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
> fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to `__aeabi_uldivmod' follow
> 
> So far this is the only file that shows the behavior, so I'd propose
> to just work around it by marking the functions as 'static inline'
> that normally get inlined here.

As a workaround it looks OK, but it's definitely not the root cause.

> 
> The reference to __aeabi_uldivmod comes from a div_u64() which has an
> optimization for a constant division that uses a straight '/' operator
> when the result should be known to the compiler. My interpretation is
> that as we turn off inlining, gcc still expects the result to be constant
> but fails to use that constant value.

It looks more like a bug in div_u64() optimization.

Despite this file in btrfs, did you hit the same problem for any other file?

> 
> Cc: Changbin Du <changbin.du@gmail.com>
> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable compiler auto-inlining")

I can't find it in the mainline kernel, is the commit hash correct?
If not merged, we should still has a chance to further polish that patch.

Thanks,
Qu

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  fs/btrfs/super.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index c3c1e7bee49d..b7af0b8936ad 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -1922,7 +1922,7 @@ static int btrfs_remount(struct super_block *sb, int *flags,
>  }
>  
>  /* Used to sort the devices by max_avail(descending sort) */
> -static int btrfs_cmp_device_free_bytes(const void *dev_info1,
> +static inline int btrfs_cmp_device_free_bytes(const void *dev_info1,
>  				       const void *dev_info2)
>  {
>  	if (((struct btrfs_device_info *)dev_info1)->max_avail >
> @@ -1951,8 +1951,8 @@ static inline void btrfs_descending_sort_devices(
>   * The helper to calc the free space on the devices that can be used to store
>   * file data.
>   */
> -static int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> -				       u64 *free_bytes)
> +static inline int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> +					      u64 *free_bytes)
>  {
>  	struct btrfs_device_info *devices_info;
>  	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-04  0:38 ` Qu Wenruo
@ 2018-11-04 22:32   ` Arnd Bergmann
  2018-11-05 16:51     ` David Sterba
  0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2018-11-04 22:32 UTC (permalink / raw)
  To: Qu Wenruo
  Cc: Chris Mason, David Sterba, Josef Bacik, Gu Jinxiang, Changbin Du,
	Misono Tomohiro, Anand Jain, Nikolay Borisov, linux-btrfs,
	linux-kernel

On 11/4/18, Qu Wenruo <wqu@suse.de> wrote:
>
>
> On 2018/11/3 下午11:39, Arnd Bergmann wrote:
>> On 32-bit ARM with gcc-8, I see a link error with the addition of the
>> CONFIG_NO_AUTO_INLINE option:
>>
>> fs/btrfs/super.o: In function `btrfs_statfs':
>> super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
>> super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
>> fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to
>> `__aeabi_uldivmod' follow
>>
>> So far this is the only file that shows the behavior, so I'd propose
>> to just work around it by marking the functions as 'static inline'
>> that normally get inlined here.
>
> As a workaround it looks OK, but it's definitely not the root cause.
>
>>
>> The reference to __aeabi_uldivmod comes from a div_u64() which has an
>> optimization for a constant division that uses a straight '/' operator
>> when the result should be known to the compiler. My interpretation is
>> that as we turn off inlining, gcc still expects the result to be constant
>> but fails to use that constant value.
>
> It looks more like a bug in div_u64() optimization.
>
> Despite this file in btrfs, did you hit the same problem for any other
> file?

Not this time. I've done a creduce on the file and got to this code

struct kstatfs {
  u64 f_bfree;
};
btrfs_calc_avail_data_space(p1) {}
btrfs_statfs(struct kstatfs *p1) {
  u64 d = 0;
  unsigned e = 1;
  for (; a;)
    e = btrfs_bg_type_to_factor();
  p1->f_bfree = div_u64(0, e) >> c;
  __asm__("");
  div_u64(d, e);
  b = btrfs_calc_avail_data_space(&d);
}

Looking at the assembler code produced by this, it seems to be
the same thing that we dealt with in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785

>> Cc: Changbin Du <changbin.du@gmail.com>
>> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable
>> compiler auto-inlining")
>
> I can't find it in the mainline kernel, is the commit hash correct?
> If not merged, we should still has a chance to further polish that patch.

It's in linux-next.

       Arnd

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-03 15:39 [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Arnd Bergmann
  2018-11-03 20:41 ` Nikolay Borisov
  2018-11-04  0:38 ` Qu Wenruo
@ 2018-11-05  9:20 ` Nikolay Borisov
  2018-11-05 14:37 ` Changbin Du
  3 siblings, 0 replies; 10+ messages in thread
From: Nikolay Borisov @ 2018-11-05  9:20 UTC (permalink / raw)
  To: Arnd Bergmann, Chris Mason, Josef Bacik, David Sterba
  Cc: Changbin Du, Anand Jain, Misono Tomohiro, Qu Wenruo, Gu Jinxiang,
	linux-btrfs, linux-kernel



On 3.11.18 г. 17:39 ч., Arnd Bergmann wrote:
> On 32-bit ARM with gcc-8, I see a link error with the addition of the
> CONFIG_NO_AUTO_INLINE option:
> 
> fs/btrfs/super.o: In function `btrfs_statfs':
> super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
> fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to `__aeabi_uldivmod' follow
> 
> So far this is the only file that shows the behavior, so I'd propose
> to just work around it by marking the functions as 'static inline'
> that normally get inlined here.
> 
> The reference to __aeabi_uldivmod comes from a div_u64() which has an
> optimization for a constant division that uses a straight '/' operator
> when the result should be known to the compiler. My interpretation is
> that as we turn off inlining, gcc still expects the result to be constant
> but fails to use that constant value.
> 
> Cc: Changbin Du <changbin.du@gmail.com>
> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable compiler auto-inlining")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

I spoke with Arnd on irc and am fine with taking this patch as-is if
btrfs is the sole offender. So:

Reviewed-by: Nikolay Borisov <nborisov@suse.com>

> ---
>  fs/btrfs/super.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index c3c1e7bee49d..b7af0b8936ad 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -1922,7 +1922,7 @@ static int btrfs_remount(struct super_block *sb, int *flags,
>  }
>  
>  /* Used to sort the devices by max_avail(descending sort) */
> -static int btrfs_cmp_device_free_bytes(const void *dev_info1,
> +static inline int btrfs_cmp_device_free_bytes(const void *dev_info1,
>  				       const void *dev_info2)
>  {
>  	if (((struct btrfs_device_info *)dev_info1)->max_avail >
> @@ -1951,8 +1951,8 @@ static inline void btrfs_descending_sort_devices(
>   * The helper to calc the free space on the devices that can be used to store
>   * file data.
>   */
> -static int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> -				       u64 *free_bytes)
> +static inline int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> +					      u64 *free_bytes)
>  {
>  	struct btrfs_device_info *devices_info;
>  	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-03 15:39 [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Arnd Bergmann
                   ` (2 preceding siblings ...)
  2018-11-05  9:20 ` Nikolay Borisov
@ 2018-11-05 14:37 ` Changbin Du
  3 siblings, 0 replies; 10+ messages in thread
From: Changbin Du @ 2018-11-05 14:37 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Chris Mason, Josef Bacik, David Sterba, Changbin Du, Anand Jain,
	Nikolay Borisov, Misono Tomohiro, Qu Wenruo, Gu Jinxiang,
	linux-btrfs, linux-kernel

Thanks for this fix.

Reviewed-by: Changbin Du <changbin.du@gmail.com>

On Sat, Nov 03, 2018 at 04:39:28PM +0100, Arnd Bergmann wrote:
> On 32-bit ARM with gcc-8, I see a link error with the addition of the
> CONFIG_NO_AUTO_INLINE option:
> 
> fs/btrfs/super.o: In function `btrfs_statfs':
> super.c:(.text+0x67b8): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x67fc): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6858): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x6920): undefined reference to `__aeabi_uldivmod'
> super.c:(.text+0x693c): undefined reference to `__aeabi_uldivmod'
> fs/btrfs/super.o:super.c:(.text+0x6958): more undefined references to `__aeabi_uldivmod' follow
> 
> So far this is the only file that shows the behavior, so I'd propose
> to just work around it by marking the functions as 'static inline'
> that normally get inlined here.
> 
> The reference to __aeabi_uldivmod comes from a div_u64() which has an
> optimization for a constant division that uses a straight '/' operator
> when the result should be known to the compiler. My interpretation is
> that as we turn off inlining, gcc still expects the result to be constant
> but fails to use that constant value.
> 
> Cc: Changbin Du <changbin.du@gmail.com>
> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable compiler auto-inlining")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  fs/btrfs/super.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index c3c1e7bee49d..b7af0b8936ad 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -1922,7 +1922,7 @@ static int btrfs_remount(struct super_block *sb, int *flags,
>  }
>  
>  /* Used to sort the devices by max_avail(descending sort) */
> -static int btrfs_cmp_device_free_bytes(const void *dev_info1,
> +static inline int btrfs_cmp_device_free_bytes(const void *dev_info1,
>  				       const void *dev_info2)
>  {
>  	if (((struct btrfs_device_info *)dev_info1)->max_avail >
> @@ -1951,8 +1951,8 @@ static inline void btrfs_descending_sort_devices(
>   * The helper to calc the free space on the devices that can be used to store
>   * file data.
>   */
> -static int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> -				       u64 *free_bytes)
> +static inline int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
> +					      u64 *free_bytes)
>  {
>  	struct btrfs_device_info *devices_info;
>  	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
> -- 
> 2.18.0
>

-- 
Thanks,
Changbin Du

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-04 22:32   ` Arnd Bergmann
@ 2018-11-05 16:51     ` David Sterba
  2018-11-05 21:27       ` Arnd Bergmann
  0 siblings, 1 reply; 10+ messages in thread
From: David Sterba @ 2018-11-05 16:51 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Qu Wenruo, Chris Mason, David Sterba, Josef Bacik, Gu Jinxiang,
	Changbin Du, Misono Tomohiro, Anand Jain, Nikolay Borisov,
	linux-btrfs, linux-kernel

On Sun, Nov 04, 2018 at 11:32:03PM +0100, Arnd Bergmann wrote:
> >> Cc: Changbin Du <changbin.du@gmail.com>
> >> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable
> >> compiler auto-inlining")
> >
> > I can't find it in the mainline kernel, is the commit hash correct?
> > If not merged, we should still has a chance to further polish that patch.
> 
> It's in linux-next.

I can't find it in current linux-next either, the final reference in
Fixes: must refer to a commit in Linus' tree.

You can take this fix with the patch that introduces the config option
(ack for that) in case merging through the btrfs tree would be too late
for it (ie. no common base for the git trees containg the new code and fix).

Or I can take it through btrfs tree in 4.20-rc cycle. In both cases the
Fixes: does not need to be there.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-05 16:51     ` David Sterba
@ 2018-11-05 21:27       ` Arnd Bergmann
  2018-11-06 15:04         ` David Sterba
  0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2018-11-05 21:27 UTC (permalink / raw)
  To: dsterba, Arnd Bergmann, Qu Wenruo, Chris Mason, David Sterba,
	Josef Bacik, Gu Jinxiang, Changbin Du, Misono Tomohiro,
	Anand Jain, Nikolay Borisov, linux-btrfs, linux-kernel

On 11/5/18, David Sterba <dsterba@suse.cz> wrote:
> On Sun, Nov 04, 2018 at 11:32:03PM +0100, Arnd Bergmann wrote:
>> >> Cc: Changbin Du <changbin.du@gmail.com>
>> >> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable
>> >> compiler auto-inlining")
>> >
>> > I can't find it in the mainline kernel, is the commit hash correct?
>> > If not merged, we should still has a chance to further polish that
>> > patch.
>>
>> It's in linux-next.
>
> I can't find it in current linux-next either, the final reference in
> Fixes: must refer to a commit in Linus' tree.

Ah, right, it got rebased. The commit ID in today's linux-next
is 917fad29febd. Most trees in linux-next don't rebase so this
would not be an issue, but you are right that this one clearly
did, so the line is wrong here.

The commit is now delayed until 4.21 I assume.

> You can take this fix with the patch that introduces the config option
> (ack for that) in case merging through the btrfs tree would be too late
> for it (ie. no common base for the git trees containg the new code and
> fix).
>
> Or I can take it through btrfs tree in 4.20-rc cycle. In both cases the
> Fixes: does not need to be there.

Please take it through the btrfs tree. Let me know if you need me
to extend the changelog to explain that situation better.

      Arnd

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
  2018-11-05 21:27       ` Arnd Bergmann
@ 2018-11-06 15:04         ` David Sterba
  0 siblings, 0 replies; 10+ messages in thread
From: David Sterba @ 2018-11-06 15:04 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: dsterba, Qu Wenruo, Chris Mason, David Sterba, Josef Bacik,
	Gu Jinxiang, Changbin Du, Misono Tomohiro, Anand Jain,
	Nikolay Borisov, linux-btrfs, linux-kernel

On Mon, Nov 05, 2018 at 10:27:03PM +0100, Arnd Bergmann wrote:
> On 11/5/18, David Sterba <dsterba@suse.cz> wrote:
> > On Sun, Nov 04, 2018 at 11:32:03PM +0100, Arnd Bergmann wrote:
> >> >> Cc: Changbin Du <changbin.du@gmail.com>
> >> >> Fixes: 943b8435c3bd ("kernel hacking: add a config option to disable
> >> >> compiler auto-inlining")
> >> >
> >> > I can't find it in the mainline kernel, is the commit hash correct?
> >> > If not merged, we should still has a chance to further polish that
> >> > patch.
> >>
> >> It's in linux-next.
> >
> > I can't find it in current linux-next either, the final reference in
> > Fixes: must refer to a commit in Linus' tree.
> 
> Ah, right, it got rebased. The commit ID in today's linux-next
> is 917fad29febd. Most trees in linux-next don't rebase so this
> would not be an issue, but you are right that this one clearly
> did, so the line is wrong here.
> 
> The commit is now delayed until 4.21 I assume.
> 
> > You can take this fix with the patch that introduces the config option
> > (ack for that) in case merging through the btrfs tree would be too late
> > for it (ie. no common base for the git trees containg the new code and
> > fix).
> >
> > Or I can take it through btrfs tree in 4.20-rc cycle. In both cases the
> > Fixes: does not need to be there.
> 
> Please take it through the btrfs tree. Let me know if you need me
> to extend the changelog to explain that situation better.

Ok, I'll add it to my tree, the changelog is good, thanks.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-11-06 15:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-03 15:39 [PATCH] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Arnd Bergmann
2018-11-03 20:41 ` Nikolay Borisov
2018-11-03 21:25   ` Arnd Bergmann
2018-11-04  0:38 ` Qu Wenruo
2018-11-04 22:32   ` Arnd Bergmann
2018-11-05 16:51     ` David Sterba
2018-11-05 21:27       ` Arnd Bergmann
2018-11-06 15:04         ` David Sterba
2018-11-05  9:20 ` Nikolay Borisov
2018-11-05 14:37 ` Changbin Du

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).