lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202504080240.huURqAeM-lkp@intel.com>
Date: Tue, 8 Apr 2025 02:35:25 +0800
From: kernel test robot <lkp@...el.com>
To: Colin Ian King <colin.king@...el.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Song Liu <song@...nel.org>
Cc: oe-kbuild-all@...ts.linux.dev,
	Linux Memory Management List <linux-mm@...ck.org>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] md/raid6 algorithms: scale test duration for speedier
 boots

Hi Colin,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-nonmm-unstable]
[also build test ERROR on akpm-mm/mm-everything linus/master v6.15-rc1 next-20250407]
[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/Colin-Ian-King/md-raid6-algorithms-scale-test-duration-for-speedier-boots/20250407-225435
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
patch link:    https://lore.kernel.org/r/20250407143105.60-1-colin.king%40intel.com
patch subject: [PATCH] md/raid6 algorithms: scale test duration for speedier boots
config: i386-buildonly-randconfig-002-20250407 (https://download.01.org/0day-ci/archive/20250408/202504080240.huURqAeM-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250408/202504080240.huURqAeM-lkp@intel.com/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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504080240.huURqAeM-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: lib/raid6/algos.o: in function `raid6_choose_gen':
>> lib/raid6/algos.c:191: undefined reference to `__udivdi3'
>> ld: lib/raid6/algos.c:209: undefined reference to `__udivdi3'
   ld: lib/raid6/algos.c:223: undefined reference to `__udivdi3'


vim +191 lib/raid6/algos.c

   156	
   157	static inline const struct raid6_calls *raid6_choose_gen(
   158		void *(*const dptrs)[RAID6_TEST_DISKS], const int disks)
   159	{
   160		unsigned long perf;
   161		const unsigned long max_perf = 2500;
   162		int start = (disks>>1)-1, stop = disks-3;	/* work on the second half of the disks */
   163		const struct raid6_calls *const *algo;
   164		const struct raid6_calls *best;
   165		const u64 ns_per_mb = 1000000000 >> 20;
   166		u64 n, ns, t, ns_best = ~0ULL;
   167	
   168		for (best = NULL, algo = raid6_algos; *algo; algo++) {
   169			if (!best || (*algo)->priority >= best->priority) {
   170				if ((*algo)->valid && !(*algo)->valid())
   171					continue;
   172	
   173				if (!IS_ENABLED(CONFIG_RAID6_PQ_BENCHMARK)) {
   174					best = *algo;
   175					break;
   176				}
   177	
   178				preempt_disable();
   179				t = local_clock();
   180				for (perf = 0; perf < max_perf; perf++) {
   181					(*algo)->gen_syndrome(disks, PAGE_SIZE, *dptrs);
   182				}
   183				ns = local_clock() - t;
   184				preempt_enable();
   185	
   186				if (ns < ns_best) {
   187					ns_best = ns;
   188					best = *algo;
   189				}
   190				n = max_perf * PAGE_SIZE * ns_per_mb * (disks - 2);
 > 191				pr_info("raid6: %-8s gen() %5llu MB/s (%llu ns)\n", (*algo)->name, (ns > 0) ? n / ns : 0, ns);
   192			}
   193		}
   194	
   195		if (!best) {
   196			pr_err("raid6: Yikes! No algorithm found!\n");
   197			goto out;
   198		}
   199	
   200		raid6_call = *best;
   201	
   202		if (!IS_ENABLED(CONFIG_RAID6_PQ_BENCHMARK)) {
   203			pr_info("raid6: skipped pq benchmark and selected %s\n",
   204				best->name);
   205			goto out;
   206		}
   207	
   208		n = max_perf * PAGE_SIZE * ns_per_mb * (disks - 2);
 > 209		pr_info("raid6: using algorithm %s gen() %llu MB/s (%llu ns)\n",
   210			best->name, (ns_best > 0) ? n / ns_best : 0, ns_best);
   211	
   212		if (best->xor_syndrome) {
   213			preempt_disable();
   214			t = local_clock();
   215			for (perf = 0; perf < max_perf; perf++) {
   216				best->xor_syndrome(disks, start, stop,
   217						   PAGE_SIZE, *dptrs);
   218			}
   219			ns = local_clock() - t;
   220			preempt_enable();
   221	
   222			n = max_perf * PAGE_SIZE * ns_per_mb * (disks - 2);
   223			pr_info("raid6: .... xor() %llu MB/s, rmw enabled (%llu ns)\n", (ns > 0) ? n / ns : 0, ns);
   224		}
   225	out:
   226		return best;
   227	}
   228	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ