Re: [PATCH] raid6: arm64: add SVE optimized implementation for syndrome generation

kernel test robot <[email protected]>
Newsgroups gmane.linux.raid,gmane.linux.kernel
Message-ID <[email protected]>
Hi Demian,

kernel test robot noticed the following build warnings:

[auto build test WARNING on akpm-mm/mm-nonmm-unstable]
[also build test WARNING on linus/master v7.0-rc4 next-20260317]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Demian-Shulhan/raid6-arm64-add-SVE-optimized-implementation-for-syndrome-generation/20260317-224300
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
patch link:    https://lore.kernel.org/r/20260317111706.2756977-1-demyansh%40gmail.com
patch subject: [PATCH] raid6: arm64: add SVE optimized implementation for syndrome generation
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20260318/[email protected]/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260318/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

>> lib/raid6/sve.c:70:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
      70 |                 : [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
         |                                                ^
   lib/raid6/sve.c:34:22: note: use constraint modifier "w"
      34 |                 "ldr x6, [%[dptr], %[z0], lsl #3]\n"
         |                                    ^~~~~
         |                                    %w[z0]
   lib/raid6/sve.c:151:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
     151 |                 : [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
         |                                                ^
   lib/raid6/sve.c:96:22: note: use constraint modifier "w"
      96 |                 "ldr x6, [%[dptr], %[z0], lsl #3]\n"
         |                                    ^~~~~
         |                                    %w[z0]
   lib/raid6/sve.c:229:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
     229 |                 : [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
         |                                                ^
   lib/raid6/sve.c:176:22: note: use constraint modifier "w"
     176 |                 "ldr x6, [%[dptr], %[z0], lsl #3]\n"
         |                                    ^~~~~
         |                                    %w[z0]
   lib/raid6/sve.c:340:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
     340 |                 : [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
         |                                                ^
   lib/raid6/sve.c:256:22: note: use constraint modifier "w"
     256 |                 "ldr x6, [%[dptr], %[z0], lsl #3]\n"
         |                                    ^~~~~
         |                                    %w[z0]
   lib/raid6/sve.c:455:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
     455 |                 : [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
         |                                                ^
   lib/raid6/sve.c:366:22: note: use constraint modifier "w"
     366 |                 "ldr x6, [%[dptr], %[z0], lsl #3]\n"
         |                                    ^~~~~
         |                                    %w[z0]
   lib/raid6/sve.c:634:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
     634 |                 : [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
         |                                                ^
   lib/raid6/sve.c:484:22: note: use constraint modifier "w"
     484 |                 "ldr x6, [%[dptr], %[z0], lsl #3]\n"
         |                                    ^~~~~
         |                                    %w[z0]
   6 warnings generated.


vim +70 lib/raid6/sve.c

    15	
    16	static void raid6_sve1_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs)
    17	{
    18		u8 **dptr = (u8 **)ptrs;
    19		u8 *p, *q;
    20		int z0 = disks - 3;
    21	
    22		p = dptr[z0 + 1];
    23		q = dptr[z0 + 2];
    24	
    25		asm volatile(
    26			".arch armv8.2-a+sve\n"
    27			"ptrue p0.b\n"
    28			"cntb x3\n"
    29			"mov w4, #0x1d\n"
    30			"dup z4.b, w4\n"
    31			"mov x5, #0\n"
    32	
    33			"0:\n"
    34			"ldr x6, [%[dptr], %[z0], lsl #3]\n"
    35			"ld1b z0.b, p0/z, [x6, x5]\n"
    36			"mov z1.d, z0.d\n"
    37	
    38			"mov w7, %w[z0]\n"
    39			"sub w7, w7, #1\n"
    40	
    41			"1:\n"
    42			"cmp w7, #0\n"
    43			"blt 2f\n"
    44	
    45			"mov z3.d, z1.d\n"
    46			"asr z3.b, p0/m, z3.b, #7\n"
    47			"lsl z1.b, p0/m, z1.b, #1\n"
    48	
    49			"and z3.d, z3.d, z4.d\n"
    50			"eor z1.d, z1.d, z3.d\n"
    51	
    52			"sxtw x8, w7\n"
    53			"ldr x6, [%[dptr], x8, lsl #3]\n"
    54			"ld1b z2.b, p0/z, [x6, x5]\n"
    55	
    56			"eor z1.d, z1.d, z2.d\n"
    57			"eor z0.d, z0.d, z2.d\n"
    58	
    59			"sub w7, w7, #1\n"
    60			"b 1b\n"
    61			"2:\n"
    62	
    63			"st1b z0.b, p0, [%[p], x5]\n"
    64			"st1b z1.b, p0, [%[q], x5]\n"
    65	
    66			"add x5, x5, x3\n"
    67			"cmp x5, %[bytes]\n"
    68			"blt 0b\n"
    69			:
  > 70			: [dptr] "r" (dptr), [z0] "r" (z0), [bytes] "r" (bytes),
    71			  [p] "r" (p), [q] "r" (q)
    72			: "memory", "p0", "x3", "x4", "x5", "x6", "x7", "x8",
    73			  "z0", "z1", "z2", "z3", "z4"
    74		);
    75	}
    76	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.