linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Liam R. Howlett" <Liam.Howlett@oracle.com>
To: SeongJae Park <sj@kernel.org>
Cc: kernel test robot <lkp@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	oe-kbuild-all@lists.linux.dev,
	Linux Memory Management List <linux-mm@kvack.org>,
	maple-tree@lists.infradead.org, linux-kernel@vger.kernel.org,
	Suren Baghdasaryan <surenb@google.com>,
	Matthew Wilcox <willy@infradead.org>,
	Sidhartha Kumar <sidhartha.kumar@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Alice Ryhl <aliceryhl@google.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Christian Kujau <lists@nerdbynature.de>
Subject: Re: [PATCH v2 17/29] maple_tree: Start using maple copy node for destination
Date: Fri, 23 Jan 2026 14:45:06 -0500	[thread overview]
Message-ID: <dwhxxuil4zkesmyj6xviyyyfedrcd65h6qd4bplmcrsg36purj@f523i7t6nxag> (raw)
In-Reply-To: <20260122055516.69335-1-sj@kernel.org>

* SeongJae Park <sj@kernel.org> [260122 00:55]:
> On Thu, 22 Jan 2026 09:44:37 +0800 kernel test robot <lkp@intel.com> wrote:
> 
> > Hi Liam,
> > 
> > kernel test robot noticed the following build errors:
> > 
> > [auto build test ERROR on akpm-mm/mm-everything]
> > [also build test ERROR on next-20260121]
> > [cannot apply to akpm-mm/mm-nonmm-unstable soc/for-next linus/master v6.19-rc6]
> > [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/Liam-R-Howlett/maple_tree-Fix-mas_dup_alloc-sparse-warning/20260122-023746
> > base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> > patch link:    https://lore.kernel.org/r/20260121164526.2093265-18-Liam.Howlett%40oracle.com
> > patch subject: [PATCH v2 17/29] maple_tree: Start using maple copy node for destination
> > config: sparc-randconfig-002-20260122 (https://download.01.org/0day-ci/archive/20260122/202601220811.ac3t5OuP-lkp@intel.com/config)
> > compiler: sparc64-linux-gcc (GCC) 8.5.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260122/202601220811.ac3t5OuP-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/202601220811.ac3t5OuP-lkp@intel.com/
> > 
> > All errors (new ones prefixed by >>):
> > 
> >    In file included from ./arch/sparc/include/generated/asm/rwonce.h:1,
> >                     from include/linux/compiler.h:380,
> >                     from include/linux/array_size.h:5,
> >                     from include/linux/kernel.h:16,
> >                     from include/linux/maple_tree.h:11,
> >                     from lib/maple_tree.c:56:
> >    lib/maple_tree.c: In function 'cp_dst_to_slots':
> > >> include/linux/rcupdate.h:555:36: error: dereferencing pointer to incomplete type 'struct maple_enode'
> >     #define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v)
> >                                        ^~~~
> >    include/asm-generic/rwonce.h:55:33: note: in definition of macro '__WRITE_ONCE'
> >      *(volatile typeof(x) *)&(x) = (val);    \
> >                                     ^~~
> >    include/linux/rcupdate.h:1046:3: note: in expansion of macro 'WRITE_ONCE'
> >       WRITE_ONCE(p, RCU_INITIALIZER(v)); \
> >       ^~~~~~~~~~
> >    include/linux/rcupdate.h:1046:17: note: in expansion of macro 'RCU_INITIALIZER'
> >       WRITE_ONCE(p, RCU_INITIALIZER(v)); \
> >                     ^~~~~~~~~~~~~~~
> >    lib/maple_tree.c:3155:3: note: in expansion of macro 'RCU_INIT_POINTER'
> >       RCU_INIT_POINTER(cp->slot[d], mt_mk_node(mn, mt));
> >       ^~~~~~~~~~~~~~~~
> 
> Seems this issue depends on compiler version.  I got similar error on my build
> test, which uses gcc 8.1.0.  After increasing the version to 14.2.0, I don't
> get the build error.
> 
> I also confirmed below simple change fixes the build error on my setup, and
> added to my tree as a temporal fix.  I'm not familiar with maple tree code or
> clearly understanding exactly what gcc change caused the issue, so I'm unsure
> if my fix is a right one.  I'm sharing that only for a reference, as anyway I
> have to make it and add to my tree as a temporal fix.

Thanks SJ.

I have translations in the code for void * to other types, but haven't
hit an issue the other way until now.  These types are not fully defined
specifically to catch type errors, so it's ironic this breaks on old
compilers.

This fix looks good to me.

Thanks,
Liam


> 
> 
> Thanks,
> SJ
> 
> [...]
> === >8 ===
> From 6b0051e419cc5129133f8eb94db7f44afd8170fa Mon Sep 17 00:00:00 2001
> From: SeongJae Park <sj@kernel.org>
> Date: Wed, 21 Jan 2026 21:24:08 -0800
> Subject: [PATCH] temporal build fix
> 
> Link: https://lore.kernel.org/202601220811.ac3t5OuP-lkp@intel.com
> Signed-off-by: SeongJae Park <sj@kernel.org>
> ---
>  lib/maple_tree.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> index 2d840b9a360f8..7aafcec45c6f2 100644
> --- a/lib/maple_tree.c
> +++ b/lib/maple_tree.c
> @@ -3152,7 +3152,7 @@ static inline void cp_dst_to_slots(struct maple_copy *cp, unsigned long min,
>  		 * read-side operations that can view them until they are
>  		 * inserted into the tree after an rcu_assign_pointer() call.
>  		 */
> -		RCU_INIT_POINTER(cp->slot[d], mt_mk_node(mn, mt));
> +		RCU_INIT_POINTER(cp->slot[d], (void *)mt_mk_node(mn, mt));
>  		cp->pivot[d] = slot_max;
>  		if (mt_is_alloc(mas->tree)) {
>  			if (ma_is_leaf(mt)) {
> @@ -3375,7 +3375,8 @@ static bool spanning_ascend(struct maple_copy *cp, struct ma_state *mas,
>  			 * the tree after an rcu_assign_pointer() call.
>  			 */
>  			RCU_INIT_POINTER(cp->slot[0],
> -					 mt_mk_node(cp->dst[0].node, mt));
> +					 (void *)mt_mk_node(
> +						 cp->dst[0].node, mt));
>  			cp->height++;
>  		}
>  		WARN_ON_ONCE(cp->dst[0].node != mte_to_node(
> -- 
> 2.47.3
> 


  reply	other threads:[~2026-01-23 19:45 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-21 16:44 [PATCH v2 00/29] maple_tree: Replace big node with maple copy Liam R. Howlett
2026-01-21 16:44 ` [PATCH v2 01/29] maple_tree: Fix mas_dup_alloc() sparse warning Liam R. Howlett
2026-01-21 16:44 ` [PATCH v2 02/29] maple_tree: Move mas_spanning_rebalance loop to function Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 03/29] maple_tree: Extract use of big node from mas_wr_spanning_store() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 04/29] maple_tree: Remove unnecessary assignment of orig_l index Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 05/29] maple_tree: inline mas_spanning_rebalance() into mas_wr_spanning_rebalance() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 06/29] maple_tree: Make ma_wr_states reliable for reuse in spanning store Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 07/29] maple_tree: Remove l_wr_mas from mas_wr_spanning_rebalance Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 08/29] maple_tree: Don't pass through height in mas_wr_spanning_store Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 09/29] maple_tree: Move maple_subtree_state from mas_wr_spanning_store to mas_wr_spanning_rebalance Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 10/29] maple_tree: Correct right ma_wr_state end pivot in mas_wr_spanning_store() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 11/29] maple_tree: Introduce maple_copy node and use it in mas_spanning_rebalance() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 12/29] maple_tree: Testing update for spanning store Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 13/29] maple_tree: Inline mas_spanning_rebalance_loop() into mas_wr_spanning_rebalance() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 14/29] maple_tree: Change initial big node setup in mas_wr_spanning_rebalance() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 15/29] maple_tree: Introduce ma_leaf_max_gap() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 16/29] maple_tree: Add gap support, slot and pivot sizes for maple copy Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 17/29] maple_tree: Start using maple copy node for destination Liam R. Howlett
2026-01-22  1:44   ` kernel test robot
2026-01-22  5:55     ` SeongJae Park
2026-01-23 19:45       ` Liam R. Howlett [this message]
2026-01-21 16:45 ` [PATCH v2 18/29] maple_tree: inline mas_wr_spanning_rebalance() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 19/29] maple_tree: Remove unnecessary return statements Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 20/29] maple_tree: Separate wr_split_store and wr_rebalance store type code path Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 21/29] maple_tree: Add cp_is_new_root() helper Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 22/29] maple_tree: Use maple copy node for mas_wr_rebalance() operation Liam R. Howlett
2026-01-27 23:05   ` Mark Brown
2026-01-27 23:15     ` Andrew Morton
2026-01-30 16:42       ` Liam R. Howlett
2026-01-30 18:02         ` Andrew Morton
2026-01-28 10:53     ` Mark Brown
2026-01-28 14:36       ` Liam R. Howlett
2026-01-28 14:56         ` Mark Brown
2026-01-21 16:45 ` [PATCH v2 23/29] maple_tree: Add copy_tree_location() helper Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 24/29] maple_tree: Add cp_converged() helper Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 25/29] maple_tree: Use maple copy node for mas_wr_split() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 26/29] maple_tree: Remove maple big node and subtree structs Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 27/29] maple_tree: Pass maple copy node to mas_wmb_replace() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 28/29] maple_tree: Don't pass end to mas_wr_append() Liam R. Howlett
2026-01-21 16:45 ` [PATCH v2 29/29] maple_tree: Clean up mas_wr_node_store() Liam R. Howlett

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=dwhxxuil4zkesmyj6xviyyyfedrcd65h6qd4bplmcrsg36purj@f523i7t6nxag \
    --to=liam.howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=aliceryhl@google.com \
    --cc=arnd@arndb.de \
    --cc=geert@linux-m68k.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lists@nerdbynature.de \
    --cc=lkp@intel.com \
    --cc=maple-tree@lists.infradead.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=sidhartha.kumar@oracle.com \
    --cc=sj@kernel.org \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    /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