All of lore.kernel.org
 help / color / mirror / Atom feed
* [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
@ 2021-04-21 20:24 kernel test robot
  2021-04-21 23:26   ` Maciej W. Rozycki
  0 siblings, 1 reply; 5+ messages in thread
From: kernel test robot @ 2021-04-21 20:24 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 16765 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git mips-next
head:   182dd5bad52c66a54c300fe320b772456572bf23
commit: c49f71f60754acbff37505e1d16ca796bf8a8140 [98/101] MIPS: Reinstate platform `__div64_32' handler
config: mips-malta_qemu_32r6_defconfig (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=c49f71f60754acbff37505e1d16ca796bf8a8140
        git remote add mips-linux https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
        git fetch --no-tags mips-linux mips-next
        git checkout c49f71f60754acbff37505e1d16ca796bf8a8140
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_alloc_btree.c:6:
   fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:291:25: note: in expansion of macro 'do_div'
     291 |  return (xfs_agblock_t) do_div(ld, mp->m_sb.sb_agblocks);
         |                         ^~~~~~
--
   fs/xfs/libxfs/xfs_bmap.c: In function 'xfs_bmap_del_extent_real':
   fs/xfs/libxfs/xfs_bmap.c:5157:18: warning: variable 'bno' set but not used [-Wunused-but-set-variable]
    5157 |    xfs_fsblock_t bno;
         |                  ^~~
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_bmap.c:6:
   fs/xfs/libxfs/xfs_bmap.c: In function 'xfs_bmap_worst_indlen.isra.0':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:177:3: note: in expansion of macro 'do_div'
     177 |   do_div(len, maxrecs);
         |   ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_bmap_btree.c:6:
   fs/xfs/libxfs/xfs_bmap_btree.c: In function 'xfs_bmbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
     283 |  do_div(ld, mp->m_sb.sb_agblocks);
         |  ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_btree.c:6:
   fs/xfs/libxfs/xfs_btree.c: In function 'xfs_btree_buf_to_ptr.isra.0':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
     283 |  do_div(ld, mp->m_sb.sb_agblocks);
         |  ^~~~~~
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:291:25: note: in expansion of macro 'do_div'
     291 |  return (xfs_agblock_t) do_div(ld, mp->m_sb.sb_agblocks);
         |                         ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_ialloc.c:6:
   fs/xfs/libxfs/xfs_ialloc.c: In function 'xfs_ialloc_setup_geometry':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/libxfs/xfs_ialloc.c:2854:3: note: in expansion of macro 'do_div'
    2854 |   do_div(icount, igeo->ialloc_blks);
         |   ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_ialloc_btree.c:6:
   fs/xfs/libxfs/xfs_ialloc_btree.c: In function '__xfs_inobt_free_block.isra.0':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
     283 |  do_div(ld, mp->m_sb.sb_agblocks);
         |  ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_inode_buf.c:6:
   fs/xfs/libxfs/xfs_inode_buf.c: In function 'xfs_inode_buf_verify':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
     283 |  do_div(ld, mp->m_sb.sb_agblocks);
         |  ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_log_rlimit.c:6:
   fs/xfs/libxfs/xfs_log_rlimit.c: In function 'xfs_log_calc_minimum_size':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_linux.h:186:2: note: in expansion of macro 'do_div'
     186 |  do_div(x, y);
         |  ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_rmap_btree.c:6:
   fs/xfs/libxfs/xfs_rmap_btree.c: In function 'xfs_rmapbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:291:25: note: in expansion of macro 'do_div'
     291 |  return (xfs_agblock_t) do_div(ld, mp->m_sb.sb_agblocks);
         |                         ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_refcount_btree.c:6:
   fs/xfs/libxfs/xfs_refcount_btree.c: In function 'xfs_refcountbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
     283 |  do_div(ld, mp->m_sb.sb_agblocks);
         |  ^~~~~~
--
   In file included from include/linux/math.h:5,
                    from include/linux/kernel.h:13,
                    from include/asm-generic/bug.h:20,
                    from arch/mips/include/asm/bug.h:42,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/libxfs/xfs_sb.c:6:
   fs/xfs/libxfs/xfs_sb.c: In function 'xfs_validate_sb_common':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   include/linux/math64.h:91:15: note: in expansion of macro 'do_div'
      91 |  *remainder = do_div(dividend, divisor);
         |               ^~~~~~
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   fs/xfs/xfs_linux.h:193:2: note: in expansion of macro 'do_div'
     193 |  do_div(x, y);
         |  ^~~~~~
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
      74 |   __asm__("divu $0, %z1, %z2"    \
         |   ^~~~~~~
   include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
     245 |   __rem = __div64_32(&(n), __base); \
         |           ^~~~~~~~~~
   include/linux/math64.h:91:15: note: in expansion of macro 'do_div'
      91 |  *remainder = do_div(dividend, divisor);
         |               ^~~~~~
..


vim +/asm +74 arch/mips/include/asm/div64.h

    58	
    59	#define __div64_32(n, base) ({						\
    60		unsigned long __upper, __low, __high, __radix;			\
    61		unsigned long long __modquot;					\
    62		unsigned long long __quot;					\
    63		unsigned long long __div;					\
    64		unsigned long __mod;						\
    65										\
    66		__div = (*n);							\
    67		__radix = (base);						\
    68										\
    69		__high = __div >> 32;						\
    70		__low = __div;							\
    71		__upper = __high;						\
    72										\
    73		if (__high) {							\
  > 74			__asm__("divu	$0, %z1, %z2"				\
    75			: "=x" (__modquot)					\
    76			: "Jr" (__high), "Jr" (__radix));			\
    77			__upper = __modquot >> 32;				\
    78			__high = __modquot;					\
    79		}								\
    80										\
    81		__mod = do_div64_32(__low, __upper, __low, __radix);		\
    82										\
    83		__quot = __high;						\
    84		__quot = __quot << 32 | __low;					\
    85		(*n) = __quot;							\
    86		__mod;								\
    87	})
    88	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 16991 bytes --]

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

* Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
  2021-04-21 20:24 [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm' kernel test robot
@ 2021-04-21 23:26   ` Maciej W. Rozycki
  0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2021-04-21 23:26 UTC (permalink / raw)
  To: Huang, Ying, Thomas Bogendoerfer, kernel test robot
  Cc: kbuild-all, linux-mips

On Thu, 22 Apr 2021, kernel test robot wrote:

>    fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
> >> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
>       74 |   __asm__("divu $0, %z1, %z2"    \
>          |   ^~~~~~~

 Umm, I forgot we do support MIPSr6, unlike microMIPSr6.

 I think this asm can go and GCC will do equally well with plain C code.
Or actually marginally better, as preliminary benchmarking shows, owing to 
a slightly better instruction scheduling.  Code produced for test_div64 is 
also slightly smaller for some reason.  That's at least for the ISAs up to 
R5, which do have DIVU.  Well, I can't complain.

 For R6 compiled code will work, but separate DIVU and MODU instructions 
will be produced, which are also interlocked, so scalar implementations 
will likely not perform as well as older ISAs with their asynchronous MD 
unit.  Likely still faster then the generic algorithm though.

 Thomas: I'll collect new figures and respin the series.  Please do drop 
the original series then; I think there's no point to fix it up and we'll 
be better by starting afresh.

 Ying: I take it you'll know what to do to get the bot updated.  As it 
happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing 
list address, which has been long deprecated and then stopped working 
altogether mid Jan this year.  I have updated the cc appropriately with 
this reply, but would you please amend whatever the bot requires for 
further notices to be sent to <linux-mips@vger.kernel.org> instead?

  Maciej

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

* Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
@ 2021-04-21 23:26   ` Maciej W. Rozycki
  0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2021-04-21 23:26 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]

On Thu, 22 Apr 2021, kernel test robot wrote:

>    fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
> >> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
>       74 |   __asm__("divu $0, %z1, %z2"    \
>          |   ^~~~~~~

 Umm, I forgot we do support MIPSr6, unlike microMIPSr6.

 I think this asm can go and GCC will do equally well with plain C code.
Or actually marginally better, as preliminary benchmarking shows, owing to 
a slightly better instruction scheduling.  Code produced for test_div64 is 
also slightly smaller for some reason.  That's at least for the ISAs up to 
R5, which do have DIVU.  Well, I can't complain.

 For R6 compiled code will work, but separate DIVU and MODU instructions 
will be produced, which are also interlocked, so scalar implementations 
will likely not perform as well as older ISAs with their asynchronous MD 
unit.  Likely still faster then the generic algorithm though.

 Thomas: I'll collect new figures and respin the series.  Please do drop 
the original series then; I think there's no point to fix it up and we'll 
be better by starting afresh.

 Ying: I take it you'll know what to do to get the bot updated.  As it 
happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing 
list address, which has been long deprecated and then stopped working 
altogether mid Jan this year.  I have updated the cc appropriately with 
this reply, but would you please amend whatever the bot requires for 
further notices to be sent to <linux-mips@vger.kernel.org> instead?

  Maciej

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

* Re: [kbuild-all] Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
  2021-04-21 23:26   ` Maciej W. Rozycki
@ 2021-04-22  4:55     ` Rong Chen
  -1 siblings, 0 replies; 5+ messages in thread
From: Rong Chen @ 2021-04-22  4:55 UTC (permalink / raw)
  To: Maciej W. Rozycki, Huang, Ying, Thomas Bogendoerfer, kernel test robot
  Cc: kbuild-all, linux-mips



On 4/22/21 7:26 AM, Maciej W. Rozycki wrote:
> On Thu, 22 Apr 2021, kernel test robot wrote:
>
>>     fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
>>>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
>>        74 |   __asm__("divu $0, %z1, %z2"    \
>>           |   ^~~~~~~
>   Umm, I forgot we do support MIPSr6, unlike microMIPSr6.
>
>   I think this asm can go and GCC will do equally well with plain C code.
> Or actually marginally better, as preliminary benchmarking shows, owing to
> a slightly better instruction scheduling.  Code produced for test_div64 is
> also slightly smaller for some reason.  That's at least for the ISAs up to
> R5, which do have DIVU.  Well, I can't complain.
>
>   For R6 compiled code will work, but separate DIVU and MODU instructions
> will be produced, which are also interlocked, so scalar implementations
> will likely not perform as well as older ISAs with their asynchronous MD
> unit.  Likely still faster then the generic algorithm though.
>
>   Thomas: I'll collect new figures and respin the series.  Please do drop
> the original series then; I think there's no point to fix it up and we'll
> be better by starting afresh.
>
>   Ying: I take it you'll know what to do to get the bot updated.  As it
> happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing
> list address, which has been long deprecated and then stopped working
> altogether mid Jan this year.  I have updated the cc appropriately with
> this reply, but would you please amend whatever the bot requires for
> further notices to be sent to <linux-mips@vger.kernel.org> instead?
>
>    Maciej

Hi Maciej,

Thanks for the advice, we have updated the mailing list.

Best Regards,
Rong Chen


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

* Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
@ 2021-04-22  4:55     ` Rong Chen
  0 siblings, 0 replies; 5+ messages in thread
From: Rong Chen @ 2021-04-22  4:55 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1826 bytes --]



On 4/22/21 7:26 AM, Maciej W. Rozycki wrote:
> On Thu, 22 Apr 2021, kernel test robot wrote:
>
>>     fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
>>>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
>>        74 |   __asm__("divu $0, %z1, %z2"    \
>>           |   ^~~~~~~
>   Umm, I forgot we do support MIPSr6, unlike microMIPSr6.
>
>   I think this asm can go and GCC will do equally well with plain C code.
> Or actually marginally better, as preliminary benchmarking shows, owing to
> a slightly better instruction scheduling.  Code produced for test_div64 is
> also slightly smaller for some reason.  That's at least for the ISAs up to
> R5, which do have DIVU.  Well, I can't complain.
>
>   For R6 compiled code will work, but separate DIVU and MODU instructions
> will be produced, which are also interlocked, so scalar implementations
> will likely not perform as well as older ISAs with their asynchronous MD
> unit.  Likely still faster then the generic algorithm though.
>
>   Thomas: I'll collect new figures and respin the series.  Please do drop
> the original series then; I think there's no point to fix it up and we'll
> be better by starting afresh.
>
>   Ying: I take it you'll know what to do to get the bot updated.  As it
> happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing
> list address, which has been long deprecated and then stopped working
> altogether mid Jan this year.  I have updated the cc appropriately with
> this reply, but would you please amend whatever the bot requires for
> further notices to be sent to <linux-mips@vger.kernel.org> instead?
>
>    Maciej

Hi Maciej,

Thanks for the advice, we have updated the mailing list.

Best Regards,
Rong Chen

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

end of thread, other threads:[~2021-04-22  4:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-21 20:24 [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm' kernel test robot
2021-04-21 23:26 ` Maciej W. Rozycki
2021-04-21 23:26   ` Maciej W. Rozycki
2021-04-22  4:55   ` [kbuild-all] " Rong Chen
2021-04-22  4:55     ` Rong Chen

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.