From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A31FC4828D for ; Thu, 1 Feb 2024 23:22:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F11366B0078; Thu, 1 Feb 2024 18:22:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EC13E6B007B; Thu, 1 Feb 2024 18:22:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D62406B007D; Thu, 1 Feb 2024 18:22:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C30AE6B0078 for ; Thu, 1 Feb 2024 18:22:50 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 90D87A012D for ; Thu, 1 Feb 2024 23:22:50 +0000 (UTC) X-FDA: 81744812100.03.5B6E60A Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by imf02.hostedemail.com (Postfix) with ESMTP id 21AB08000B for ; Thu, 1 Feb 2024 23:22:47 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=i4l+fH0Q; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf02.hostedemail.com: domain of lkp@intel.com designates 198.175.65.13 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706829768; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=FWGK5350blq2XRGqtaa+JlzQH5Tr9cHdQ8gqIxzyG4w=; b=vqGki8jCGAvzFmqtlZ/15MBNm8Rw3sG1A6pSMzlecWBVxGEN2aVAgwYjxvavg/hmQC9cil ybTTX8UbuOa14BvYn3m/v6GIEvbfwFQb/MSZ/GTmHe53BPk62miIfw3MxwOZonodwQQWbB tUR2xO0ynjtk4mt4XYTX/zBw1XpdzWA= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=i4l+fH0Q; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf02.hostedemail.com: domain of lkp@intel.com designates 198.175.65.13 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706829768; a=rsa-sha256; cv=none; b=kSprYiIkVimasrNlqcOPRk8U281hf9Ufojxq6burRDaEgVDxmcHAhh0mtxJxyuJcUTOY7k 53tdkZCf51mnxFB5KD0mQFFKff5EYucHPA17/l7Q5B/NFLat8+j4VmmQoLdUUo6AMCnGUK MtPxDie7gz23IIKUBnvXx+4Y/kPdm8U= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706829769; x=1738365769; h=date:from:to:cc:subject:message-id:mime-version; bh=uGT4Fs5j3Sub0T5VTwa9quKG+DSXUC+tzuM5QSAs7B0=; b=i4l+fH0Q6gmbCoR4t137s++ccjA7t2LyALxMZvCDuh4hcj9Zf58laTYV exGkLR/eWa5lm5LoNqus/zVjKMWZ+TEguOqDA2Vl/0EPKWLpECsokZTKB /P9247yMFurJ+l0NGF1gdniGipDCUa1+EG8Dkt6+FUTwjoiNSYtQ40UWi /0XtwACUu1CwPVyo/YDxLtZV+Ke15fFzqqiqHC4xEuqOVUVbDfYDS/wRn LWECYNSsaLQYyXtbvaxT+r8u1kPunmKo0Go9O4yVCKN0MJvMw5L0W0Nrr uxM+4JhgDDb/8MmgXfzOuhBH6IIES5530uXqpAniRXYG2DkwJfIak6weE A==; X-IronPort-AV: E=McAfee;i="6600,9927,10971"; a="11133417" X-IronPort-AV: E=Sophos;i="6.05,236,1701158400"; d="scan'208";a="11133417" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Feb 2024 15:22:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10971"; a="859268169" X-IronPort-AV: E=Sophos;i="6.05,236,1701158400"; d="scan'208";a="859268169" Received: from lkp-server02.sh.intel.com (HELO 59f4f4cd5935) ([10.239.97.151]) by fmsmga004.fm.intel.com with ESMTP; 01 Feb 2024 15:22:44 -0800 Received: from kbuild by 59f4f4cd5935 with local (Exim 4.96) (envelope-from ) id 1rVgOH-0003Kk-2p; Thu, 01 Feb 2024 23:22:41 +0000 Date: Fri, 2 Feb 2024 07:22:41 +0800 From: kernel test robot To: Gregory Price Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , Andrew Morton , Rakie Kim , Honggyu Kim , Hyeongtak Ji , Srinivasulu Thanneeru , Ravi Jonnalagadda , "Huang, Ying" Subject: [linux-next:master 2950/3381] mm/mempolicy.c:2429:17: sparse: sparse: incorrect type in argument 1 (different address spaces) Message-ID: <202402020709.T2xuCcCe-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 21AB08000B X-Stat-Signature: bxu5ake54uqo5jp46fcjd3s5nfy51gau X-HE-Tag: 1706829767-931204 X-HE-Meta: U2FsdGVkX190lGN2ipfH+ET6n23wXDdWnys26CcynGuUtDeFCrEIplf/XUgTP+nxkHF3g45V7MnhYSMONLxkgfmf/d1qzh5BgsA/1Qws6wQA0OlbENVyHc2kKZucRxdELMOBwT9JhrboBgaF1y3iyb3uqVNwJhjQmjeeVADWqzB7rdJGuPbx5o+0MEHQSKZVeP1OSu/0sywfQcsQQkcbfMpWcUl0L1fB7Svr6+NMF+4ncTIqvucYv5SNDEjNVtsMpF7MvtO45+s7agEMU1jaJG4Ug616+A2qNvYXLhKGOcwrpk0oLLw7Lrc0iPbMJqmN/VevxZREcpF4eQic6+THfszrEHD11yPmULR1NSHQvIKFFnQs/UYMHp7dWP4Sy47LXnLCetn1lqR8zpK4tZ3qWCvra84KXKXlpSlAgarPir3r4bpXKFGn+uXWuV0/f457pcPggf6QbctZSIpcBrQJsWewE+Vvfs6Rga2yrFB5WmCu2rp4kcTlsqApZyFXdb2YXG6Ne7xAjqpTpcCfenTm/m+4ZERdx8hkK2AS9iBwPuId+iRDyT7d85U08DpVq+NIUcaIlF1x3mUtkN6MXyQqHlUSIsM5gSd5qHdGQUID5CyU6XXtWG+ryhwJ0HWiqcWOmiHbFrQQc86iLwmEBDE+vss15IBK7T62mlJiqM53DJY9ATsxQdaX9ScZYzRGbZBJbuw5yUNJT3r71YcmaPTOCq9bltTPVOb/AvcnCp4IH0FJqBkwRpqWxP+82w55rGAGd2LBaQJvMZ8L4I9R88LqEAg1QSN3CT4sadc1ZicD+5wSFAtE2IMqEPfW8epAZfwgK3eTsDN1kr+Nh3nu3yjOBMPc/+nv71PO9LMTQpnJjdOcxcteAGzTI6M6Elqkz4N+XWAo1XfA+bTffqbEZZEnItX1FqXz+b1AtzD0rYtXeE+GdHqnmdP7x028WrYLk/zOm2vAAn0QUEUg4tLe45S g2GWk+9x AWL4qO9VggpsSp/qGUY3iwClXqH2QPgyy2BJAp+zQzLu4pPQaiy+IkIPO4tChYNdxOxES6yGt8pAbnqQFTckpk0AZmDtlK/odv9gnM/7zgAvhHk54zpPwwMwQuBLKTS27wAdw1fHmU9Ob30+QI7k7vOmnjf1ozhKYu0m5/krM3hazYVI8ar/32CyveXXn58UTQFc6b+rMpOSAXuvlNMo/MLAKJ4WBXz10W+0GJpInP3Dorei01KdQhsbpWuu4Cs4/aRR66Ms9wrBcH0i4DwInGsFCBxrRhko8FlXJYmVLE+Q6uIw4y4tcuEnUsEiWy+1mitesJHjUQnDIkpQPkb/QUUSLEGcCCghTEft4WEDfv+8iyNLY4tfFHb5ugw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 51b70ff55ed88edd19b080a524063446bcc34b62 commit: 147371fd14993ae64ef2f612eb15f37fcef12d83 [2950/3381] mm/mempolicy: introduce MPOL_WEIGHTED_INTERLEAVE for weighted interleaving config: loongarch-randconfig-r123-20240201 (https://download.01.org/0day-ci/archive/20240202/202402020709.T2xuCcCe-lkp@intel.com/config) compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240202/202402020709.T2xuCcCe-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 | Closes: https://lore.kernel.org/oe-kbuild-all/202402020709.T2xuCcCe-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) mm/mempolicy.c:158:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *table @@ got unsigned char * @@ mm/mempolicy.c:158:15: sparse: expected unsigned char [noderef] [usertype] __rcu *table mm/mempolicy.c:158:15: sparse: got unsigned char * mm/mempolicy.c:1980:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *table @@ got unsigned char * @@ mm/mempolicy.c:1980:15: sparse: expected unsigned char [noderef] [usertype] __rcu *table mm/mempolicy.c:1980:15: sparse: got unsigned char * mm/mempolicy.c:2422:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *weights @@ got void * @@ mm/mempolicy.c:2422:17: sparse: expected unsigned char [noderef] [usertype] __rcu *weights mm/mempolicy.c:2422:17: sparse: got void * mm/mempolicy.c:2427:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *table @@ got unsigned char * @@ mm/mempolicy.c:2427:15: sparse: expected unsigned char [noderef] [usertype] __rcu *table mm/mempolicy.c:2427:15: sparse: got unsigned char * >> mm/mempolicy.c:2429:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *__to @@ got unsigned char [noderef] [usertype] __rcu *weights @@ mm/mempolicy.c:2429:17: sparse: expected void *__to mm/mempolicy.c:2429:17: sparse: got unsigned char [noderef] [usertype] __rcu *weights >> mm/mempolicy.c:2429:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *__from @@ got unsigned char [noderef] [usertype] __rcu *table @@ mm/mempolicy.c:2429:17: sparse: expected void const *__from mm/mempolicy.c:2429:17: sparse: got unsigned char [noderef] [usertype] __rcu *table mm/mempolicy.c:2485:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *weights @@ mm/mempolicy.c:2485:15: sparse: expected void const *objp mm/mempolicy.c:2485:15: sparse: got unsigned char [noderef] [usertype] __rcu *weights mm/mempolicy.c:3353:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *new @@ got void * @@ mm/mempolicy.c:3353:13: sparse: expected unsigned char [noderef] [usertype] __rcu *new mm/mempolicy.c:3353:13: sparse: got void * mm/mempolicy.c:3358:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *old @@ got unsigned char * @@ mm/mempolicy.c:3358:13: sparse: expected unsigned char [noderef] [usertype] __rcu *old mm/mempolicy.c:3358:13: sparse: got unsigned char * mm/mempolicy.c:3361:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *__to @@ got unsigned char [noderef] [usertype] __rcu *new @@ mm/mempolicy.c:3361:17: sparse: expected void *__to mm/mempolicy.c:3361:17: sparse: got unsigned char [noderef] [usertype] __rcu *new mm/mempolicy.c:3361:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *__from @@ got unsigned char [noderef] [usertype] __rcu *old @@ mm/mempolicy.c:3361:17: sparse: expected void const *__from mm/mempolicy.c:3361:17: sparse: got unsigned char [noderef] [usertype] __rcu *old mm/mempolicy.c:3366:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *old @@ mm/mempolicy.c:3366:15: sparse: expected void const *objp mm/mempolicy.c:3366:15: sparse: got unsigned char [noderef] [usertype] __rcu *old mm/mempolicy.c:3462:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *old @@ got unsigned char * @@ mm/mempolicy.c:3462:13: sparse: expected unsigned char [noderef] [usertype] __rcu *old mm/mempolicy.c:3462:13: sparse: got unsigned char * mm/mempolicy.c:3467:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *old @@ mm/mempolicy.c:3467:15: sparse: expected void const *objp mm/mempolicy.c:3467:15: sparse: got unsigned char [noderef] [usertype] __rcu *old mm/mempolicy.c: note: in included file (through include/linux/mmzone.h, include/linux/mempolicy.h): include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always evaluates to false mm/mempolicy.c:160:31: sparse: sparse: dereference of noderef expression mm/mempolicy.c:548:17: sparse: sparse: context imbalance in 'queue_folios_pte_range' - unexpected unlock mm/mempolicy.c:1984:39: sparse: sparse: dereference of noderef expression mm/mempolicy.c:1994:39: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2396:9: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2397:13: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2398:30: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2404:33: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2408:41: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2415:30: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2434:29: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2435:32: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2436:40: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2449:32: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2452:17: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2452:33: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2453:30: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2455:29: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2456:39: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2457:34: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2461:38: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2464:56: sparse: sparse: dereference of noderef expression mm/mempolicy.c:2468:49: sparse: sparse: dereference of noderef expression mm/mempolicy.c:3362:12: sparse: sparse: dereference of noderef expression vim +2429 mm/mempolicy.c 2367 2368 static unsigned long alloc_pages_bulk_array_weighted_interleave(gfp_t gfp, 2369 struct mempolicy *pol, unsigned long nr_pages, 2370 struct page **page_array) 2371 { 2372 struct task_struct *me = current; 2373 unsigned long total_allocated = 0; 2374 unsigned long nr_allocated = 0; 2375 unsigned long rounds; 2376 unsigned long node_pages, delta; 2377 u8 __rcu *table, *weights, weight; 2378 unsigned int weight_total = 0; 2379 unsigned long rem_pages = nr_pages; 2380 nodemask_t nodes; 2381 int nnodes, node, next_node; 2382 int resume_node = MAX_NUMNODES - 1; 2383 u8 resume_weight = 0; 2384 int prev_node; 2385 int i; 2386 2387 if (!nr_pages) 2388 return 0; 2389 2390 nnodes = read_once_policy_nodemask(pol, &nodes); 2391 if (!nnodes) 2392 return 0; 2393 2394 /* Continue allocating from most recent node and adjust the nr_pages */ 2395 node = me->il_prev; 2396 weight = me->il_weight; 2397 if (weight && node_isset(node, nodes)) { 2398 node_pages = min(rem_pages, weight); 2399 nr_allocated = __alloc_pages_bulk(gfp, node, NULL, node_pages, 2400 NULL, page_array); 2401 page_array += nr_allocated; 2402 total_allocated += nr_allocated; 2403 /* if that's all the pages, no need to interleave */ 2404 if (rem_pages < weight) { 2405 /* stay on current node, adjust il_weight */ 2406 me->il_weight -= rem_pages; 2407 return total_allocated; 2408 } else if (rem_pages == weight) { 2409 /* move to next node / weight */ 2410 me->il_prev = next_node_in(node, nodes); 2411 me->il_weight = get_il_weight(next_node); 2412 return total_allocated; 2413 } 2414 /* Otherwise we adjust remaining pages, continue from there */ 2415 rem_pages -= weight; 2416 } 2417 /* clear active weight in case of an allocation failure */ 2418 me->il_weight = 0; 2419 prev_node = node; 2420 2421 /* create a local copy of node weights to operate on outside rcu */ 2422 weights = kzalloc(nr_node_ids, GFP_KERNEL); 2423 if (!weights) 2424 return total_allocated; 2425 2426 rcu_read_lock(); 2427 table = rcu_dereference(iw_table); 2428 if (table) > 2429 memcpy(weights, table, nr_node_ids); 2430 rcu_read_unlock(); 2431 2432 /* calculate total, detect system default usage */ 2433 for_each_node_mask(node, nodes) { 2434 if (!weights[node]) 2435 weights[node] = 1; 2436 weight_total += weights[node]; 2437 } 2438 2439 /* 2440 * Calculate rounds/partial rounds to minimize __alloc_pages_bulk calls. 2441 * Track which node weighted interleave should resume from. 2442 * 2443 * if (rounds > 0) and (delta == 0), resume_node will always be 2444 * the node following prev_node and its weight. 2445 */ 2446 rounds = rem_pages / weight_total; 2447 delta = rem_pages % weight_total; 2448 resume_node = next_node_in(prev_node, nodes); 2449 resume_weight = weights[resume_node]; 2450 for (i = 0; i < nnodes; i++) { 2451 node = next_node_in(prev_node, nodes); 2452 weight = weights[node]; 2453 node_pages = weight * rounds; 2454 /* If a delta exists, add this node's portion of the delta */ 2455 if (delta > weight) { 2456 node_pages += weight; 2457 delta -= weight; 2458 } else if (delta) { 2459 node_pages += delta; 2460 /* delta may deplete on a boundary or w/ a remainder */ 2461 if (delta == weight) { 2462 /* boundary: resume from next node/weight */ 2463 resume_node = next_node_in(node, nodes); 2464 resume_weight = weights[resume_node]; 2465 } else { 2466 /* remainder: resume this node w/ remainder */ 2467 resume_node = node; 2468 resume_weight = weight - delta; 2469 } 2470 delta = 0; 2471 } 2472 /* node_pages can be 0 if an allocation fails and rounds == 0 */ 2473 if (!node_pages) 2474 break; 2475 nr_allocated = __alloc_pages_bulk(gfp, node, NULL, node_pages, 2476 NULL, page_array); 2477 page_array += nr_allocated; 2478 total_allocated += nr_allocated; 2479 if (total_allocated == nr_pages) 2480 break; 2481 prev_node = node; 2482 } 2483 me->il_prev = resume_node; 2484 me->il_weight = resume_weight; 2485 kfree(weights); 2486 return total_allocated; 2487 } 2488 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki