Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Liam R. Howlett (Google)" <liam@infradead.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [liam:dense_ulong 75/78] lib/maple_tree.c:7216:13: error: redefinition of 'mas_wr_span_walk'
Date: Wed, 28 Oct 2026 02:35:09 +0100	[thread overview]
Message-ID: <202610280229.nc2IHXJN-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/liam/linux.git dense_ulong
head:   263600ba8fac7176cac2ef7eed0a831c9acaa814
commit: 39694f20b7d4c01b5039b9193bc478448cb0d880 [75/78] maple_tree: Use 32 bit nodes for any node that spans 4G or below
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20261028/202610280229.nc2IHXJN-lkp@intel.com/config)
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261028/202610280229.nc2IHXJN-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/202610280229.nc2IHXJN-lkp@intel.com/

All errors (new ones prefixed by >>):

>> lib/maple_tree.c:7216:13: error: redefinition of 'mas_wr_span_walk'
    7216 | static bool mas_wr_span_walk(struct ma_wr_state *l_wr, struct ma_wr_state *r_wr)
         |             ^
   lib/maple_tree.c:6054:13: note: previous definition is here
    6054 | static bool mas_wr_span_walk(struct ma_wr_state *l_wr, struct ma_wr_state *r_wr)
         |             ^
>> lib/maple_tree.c:7250:13: error: redefinition of 'mas_wr_span_setup'
    7250 | static void mas_wr_span_setup(struct ma_wr_state *wr_mas)
         |             ^
   lib/maple_tree.c:6089:13: note: previous definition is here
    6089 | static void mas_wr_span_setup(struct ma_wr_state *wr_mas)
         |             ^
   2 errors generated.


vim +/mas_wr_span_walk +7216 lib/maple_tree.c

5d659bbb52a24f Sidhartha Kumar          2024-08-14  7204  
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7205) /*
39694f20b7d4c0 Liam R. Howlett (Google  2026-10-18  7206) <<<<<<< HEAD
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7207)  * mas_wr_span_walk() - Walk both sides of a spanning store in step.
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7208)  * @l_wr: The left write state, at the node the write spans
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7209)  * @r_wr: The right write state, at the same node with the right index
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7210)  *
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7211)  * Return: true if a level pairs a 32-bit left node with a 64-bit right node.
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7212)  * Only such a level can hold more than two 64-bit nodes of data without both
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7213)  * sides being full; a 32-bit right node means every entry fits 32-bit and the
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7214)  * data is sized to that.
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7215)  */
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02 @7216) static bool mas_wr_span_walk(struct ma_wr_state *l_wr, struct ma_wr_state *r_wr)
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7217) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7218) 	struct ma_state *l_mas = l_wr->mas;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7219) 	struct ma_state *r_mas = r_wr->mas;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7220) 	bool mixed = false;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7221) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7222) 	while (true) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7223) 		mas_wr_walk_descend(l_wr);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7224) 		mas_wr_walk_descend(r_wr);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7225) 		if (node_is_32b(l_wr->type) && !node_is_32b(r_wr->type))
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7226) 			mixed = true;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7227) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7228) 		l_wr->content = mas_slot_locked(l_mas, l_wr->slots, l_mas->offset);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7229) 		r_wr->content = mas_slot_locked(r_mas, r_wr->slots, r_mas->offset);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7230) 		if (ma_is_leaf(l_wr->type))
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7231) 			return mixed;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7232) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7233) 		mas_wr_walk_traverse(l_wr);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7234) 		mas_wr_walk_traverse(r_wr);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7235) 	}
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7236) }
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7237) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7238) /*
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7239)  * mas_wr_span_setup() - Settle the range and path of a spanning store.
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7240)  * @wr_mas: The maple write state, stopped at the node the write spans
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7241)  *
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7242)  * The store takes the node holding last + 1 as its right side, to join a NULL
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7243)  * there and to replace a node the write ends on; a NULL also grows over a NULL
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7244)  * ending the previous node.  Do the same here so the heights recorded by the
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7245)  * walk, and the nodes per level, are those the store will use.  Only a write
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7246)  * into the last slot of a full left leaf whose right side starts a full node
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7247)  * can 3-way split; a level mixing widths at the 4G seam is treated as if it
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7248)  * could.
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7249)  */
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02 @7250) static void mas_wr_span_setup(struct ma_wr_state *wr_mas)
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7251) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7252) 	struct ma_state *mas = wr_mas->mas;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7253) 	struct ma_state l_mas, r_mas;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7254) 	MA_WR_STATE(l_wr, &l_mas, wr_mas->entry);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7255) 	MA_WR_STATE(r_wr, &r_mas, wr_mas->entry);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7256) 	u64 last = mas->last;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7257) 	bool mixed;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7258) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7259) 	if (mas->last < mas_tree_max(mas))
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7260) 		mas->last++;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7261) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7262) walk:
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7263) 	/* Walk to the right side the store will use for the true heights. */
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7264) 	mas_reset(mas);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7265) 	wr_mas->sufficient_height = 0;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7266) 	wr_mas->vacant_height = 0;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7267) 	wr_mas->content = mas_start_wr(mas);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7268) 	mas_wr_walk(wr_mas);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7269) 	l_mas = *mas;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7270) 	r_mas = *mas;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7271) 	r_mas.index = r_mas.last;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7272) 	mixed = mas_wr_span_walk(&l_wr, &r_wr);
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7273) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7274) 	if (!wr_mas->entry) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7275) 		if (!r_wr.content && r_wr.r_max > last) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7276) 			last = r_wr.r_max;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7277) 			/*
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7278) 			 * The NULL ends the node, so the store's right side is the
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7279) 			 * node after it: size from there.
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7280) 			 */
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7281) 			if (last == r_mas.max && last < mas_tree_max(mas)) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7282) 				mas->last = last + 1;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7283) 				goto walk;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7284) 			}
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7285) 		}
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7286) 
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7287) 		/* Growing left into the previous node may move the span up. */
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7288) 		if (l_wr.content && !l_mas.offset &&
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7289) 		    l_mas.index == l_wr.r_min && l_mas.index &&
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7290) 		    mas_prev_is_null(&l_mas)) {
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7291) 			mas->index = l_mas.index;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7292) 			goto walk;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7293) 		}
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7294) 	}
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7295) 	mas->last = last;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7296) 
cb9b231377c7bf Liam R. Howlett (Oracle  2026-10-05  7297) 	/* A dense leaf can hold three range leaves of entries. */
cb9b231377c7bf Liam R. Howlett (Oracle  2026-10-05  7298) 	if (mixed || ma_is_dense(l_wr.type) || ma_is_dense(r_wr.type))
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7299) 		wr_mas->span_nodes = 3;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7300) 	else if (l_mas.offset == l_mas.end &&
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7301) 		 l_mas.end == mt_slots[l_wr.type] - 1 &&
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7302) 		 !r_mas.offset && r_mas.end == mt_slots[r_wr.type] - 1 &&
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7303) 		 l_wr.r_min < mas->index &&
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7304) 		 (wr_mas->entry || (l_wr.content && r_wr.content)))
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7305) 		wr_mas->span_nodes = 3;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7306) 	else
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7307) 		wr_mas->span_nodes = 2;
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7308) }
d607b00c1eae3c Liam R. Howlett (Oracle  2026-10-02  7309) 

:::::: The code at line 7216 was first introduced by commit
:::::: d607b00c1eae3c2aafc21d47d7eaea046870a748 maple_tree: Reduce spanning store preallocations

:::::: TO: Liam R. Howlett (Oracle) <liam@infradead.org>
:::::: CC: Liam R. Howlett (Google) <liam@infradead.org>

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

                 reply	other threads:[~2026-10-28  1:36 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202610280229.nc2IHXJN-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=liam@infradead.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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