* [liam:dense_ulong 75/78] lib/maple_tree.c:7216:13: error: redefinition of 'mas_wr_span_walk'
@ 2026-10-28 1:35 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-28 1:35 UTC (permalink / raw)
To: Liam R. Howlett (Google); +Cc: llvm, oe-kbuild-all
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-28 1:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-28 1:35 [liam:dense_ulong 75/78] lib/maple_tree.c:7216:13: error: redefinition of 'mas_wr_span_walk' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.