Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "monios114514@outlook.com" <monios114514@outlook.com>,
	"mingo@redhat.com" <mingo@redhat.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	"peterz@infradead.org" <peterz@infradead.org>,
	"juri.lelli@redhat.com" <juri.lelli@redhat.com>,
	"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>,
	"dietmar.eggemann@arm.com" <dietmar.eggemann@arm.com>,
	"rostedt@goodmis.org" <rostedt@goodmis.org>,
	"bsegall@google.com" <bsegall@google.com>,
	"mgorman@suse.de" <mgorman@suse.de>,
	"vschneid@redhat.com" <vschneid@redhat.com>,
	"kprateek.nayak@amd.com" <kprateek.nayak@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] sched/topology: fix memory leaks in allocation failure paths
Date: Fri, 14 Aug 2026 21:56:07 +0800	[thread overview]
Message-ID: <202608142104.E7fmtysw-lkp@intel.com> (raw)
In-Reply-To: <SL2P216MB261965EB5BCCF15723D13A76C1FE2@SL2P216MB2619.KORP216.PROD.OUTLOOK.COM>

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on peterz-queue/sched/core linus/master v7.2-rc7 next-20260813]
[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/monios114514-outlook-com/sched-topology-fix-memory-leaks-in-allocation-failure-paths/20260813-171714
base:   tip/sched/core
patch link:    https://lore.kernel.org/r/SL2P216MB261965EB5BCCF15723D13A76C1FE2%40SL2P216MB2619.KORP216.PROD.OUTLOOK.COM
patch subject: [PATCH] sched/topology: fix memory leaks in allocation failure paths
config: riscv-randconfig-002-20260814 (https://download.01.org/0day-ci/archive/20260814/202608142104.E7fmtysw-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 844a18e753e822736c9805ab779144b647a2c186)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260814/202608142104.E7fmtysw-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608142104.E7fmtysw-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from kernel/sched/build_utility.c:86:
>> kernel/sched/topology.c:2364:12: warning: explicitly assigning value of variable of type 'int' to itself [-Wself-assign]
    2364 |                                 for (i = i; i >= 0; i--) {
         |                                      ~ ^ ~
   1 warning generated.


vim +/int +2364 kernel/sched/topology.c

  2310	
  2311	void sched_init_numa(int offline_node)
  2312	{
  2313		struct sched_domain_topology_level *tl;
  2314		int nr_levels, nr_node_levels;
  2315		int i, j;
  2316		int *distances, *domain_distances;
  2317		struct cpumask ***masks;
  2318	
  2319		if (sched_record_numa_dist(offline_node, numa_node_dist, &distances,
  2320					   &nr_node_levels))
  2321			return;
  2322	
  2323		if (modified_sched_node_distance()) {
  2324			if (sched_record_numa_dist(offline_node, arch_sched_node_distance,
  2325						   &domain_distances, &nr_levels)) {
  2326				kfree(distances);
  2327				return;
  2328			}
  2329		} else {
  2330			domain_distances = distances;
  2331			nr_levels = nr_node_levels;
  2332		}
  2333		rcu_assign_pointer(sched_numa_node_distance, distances);
  2334		WRITE_ONCE(sched_max_numa_distance, distances[nr_node_levels - 1]);
  2335		WRITE_ONCE(sched_numa_node_levels, nr_node_levels);
  2336	
  2337		rcu_assign_pointer(sched_domains_numa_distance, domain_distances);
  2338	
  2339		sched_domains_numa_levels = 0;
  2340	
  2341		masks = kzalloc(sizeof(void *) * nr_levels, GFP_KERNEL);
  2342		if (!masks)
  2343			goto free_distance;
  2344	
  2345		for (i = 0; i < nr_levels; i++) {
  2346			masks[i] = kzalloc(nr_node_ids * sizeof(void *), GFP_KERNEL);
  2347			if (!masks[i]) {
  2348				for (i = i - 1; i >= 0; i--) {
  2349					if (!masks[i])
  2350						continue;
  2351					for_each_cpu_node_but(j, offline_node)
  2352						kfree(masks[i][j]);
  2353					kfree(masks[i]);
  2354				}
  2355				kfree(masks);
  2356				goto free_distance;
  2357			}
  2358	
  2359			for_each_cpu_node_but(j, offline_node) {
  2360				struct cpumask *mask = kzalloc(cpumask_size(), GFP_KERNEL);
  2361				int k;
  2362	
  2363				if (!mask) {
> 2364					for (i = i; i >= 0; i--) {
  2365						if (!masks[i])
  2366							continue;
  2367						for_each_cpu_node_but(j, offline_node)
  2368							kfree(masks[i][j]);
  2369						kfree(masks[i]);
  2370					}
  2371					kfree(masks);
  2372					goto free_distance;
  2373				}
  2374	
  2375				masks[i][j] = mask;
  2376	
  2377				for_each_cpu_node_but(k, offline_node) {
  2378					if (sched_debug() &&
  2379					    (arch_sched_node_distance(j, k) !=
  2380					     arch_sched_node_distance(k, j)))
  2381						sched_numa_warn("Node-distance not symmetric");
  2382	
  2383					if (arch_sched_node_distance(j, k) >
  2384					    sched_domains_numa_distance[i])
  2385						continue;
  2386	
  2387					cpumask_or(mask, mask, cpumask_of_node(k));
  2388				}
  2389			}
  2390		}
  2391		rcu_assign_pointer(sched_domains_numa_masks, masks);
  2392	
  2393		for (i = 0; sched_domain_topology[i].mask; i++);
  2394	
  2395		tl = kzalloc((i + nr_levels + 1) *
  2396				sizeof(struct sched_domain_topology_level), GFP_KERNEL);
  2397		if (!tl) {
  2398			rcu_assign_pointer(sched_domains_numa_masks, NULL);
  2399			for (i = nr_levels - 1; i >= 0; i--) {
  2400				if (!masks[i])
  2401					continue;
  2402				for_each_cpu_node_but(j, offline_node)
  2403					kfree(masks[i][j]);
  2404				kfree(masks[i]);
  2405			}
  2406			kfree(masks);
  2407			goto free_distance;
  2408		}
  2409	
  2410		for (i = 0; sched_domain_topology[i].mask; i++)
  2411			tl[i] = sched_domain_topology[i];
  2412	
  2413		tl[i++] = SDTL_INIT(sd_numa_mask, NULL, NODE);
  2414	
  2415		for (j = 1; j < nr_levels; i++, j++) {
  2416			tl[i] = SDTL_INIT(sd_numa_mask, cpu_numa_flags, NUMA);
  2417			tl[i].numa_level = j;
  2418		}
  2419	
  2420		sched_domain_topology_saved = sched_domain_topology;
  2421		sched_domain_topology = tl;
  2422	
  2423		sched_domains_numa_levels = nr_levels;
  2424	
  2425		init_numa_topology_type(offline_node);
  2426		return;
  2427	
  2428	free_distance:
  2429		if (domain_distances != distances)
  2430			kfree(domain_distances);
  2431	}
  2432	

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

           reply	other threads:[~2026-08-14 13:57 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <SL2P216MB261965EB5BCCF15723D13A76C1FE2@SL2P216MB2619.KORP216.PROD.OUTLOOK.COM>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202608142104.E7fmtysw-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=bsegall@google.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=juri.lelli@redhat.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=monios114514@outlook.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox