linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	maple-tree@lists.infradead.org, linux-mm@kvack.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>,
	Aishwarya.TCV@arm.com
Subject: Re: [PATCH v2 22/29] maple_tree: Use maple copy node for mas_wr_rebalance() operation
Date: Tue, 27 Jan 2026 23:05:48 +0000	[thread overview]
Message-ID: <bd1c3356-11a1-4d0b-bf58-47eb21bfd24d@sirena.org.uk> (raw)
In-Reply-To: <20260121164526.2093265-23-Liam.Howlett@oracle.com>

[-- Attachment #1: Type: text/plain, Size: 6199 bytes --]

On Wed, Jan 21, 2026 at 11:45:19AM -0500, Liam R. Howlett wrote:
> Stop using the maple big node for rebalance operations by changing to
> more align with spanning store.  The rebalance operation needs its own
> data calculation in rebalance_data().
> 
> In the event of too much data, the rebalance tries to push the data
> using push_data_sib().  If there is insufficient data, the rebalance
> operation will rebalance against a sibling (found with rebalance_sib()).

I'm seeing a test failure in the LTP linkat02 test on arm64 which we're
also seeing on a range of platforms in the Arm lab.  A NULL pointer
deference is generated handling the syscall in the updated code (log for
the actual next-20260126 commit):

[  361.882849] /opt/kirk/kirk[432]: linkat02: start (command: linkat02)

....

[  362.680362] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000

...

[  362.917911]  __pi_memset_generic (arch/arm64/lib/memset.S:198) (P)
[  362.922582]  mas_wr_rebalance (lib/maple_tree.c:3497)
[  362.926723]  mas_wr_store_entry (lib/maple_tree.c:3534)
[  362.930953]  mas_erase (lib/maple_tree.c:1125 lib/maple_tree.c:4981 lib/maple_tree.c:5590)
[  362.934390]  mtree_erase (lib/maple_tree.c:5916)
[  362.937827]  simple_offset_remove (fs/libfs.c:260 fs/libfs.c:335)
[  362.942057]  shmem_unlink (mm/shmem.c:3999)
[  362.945583]  vfs_unlink (fs/namei.c:5470)
[  362.949020]  filename_unlinkat (fs/namei.c:5540 (discriminator 1))
[  362.953162]  __arm64_sys_unlinkat (fs/namei.c:5569 (discriminator 1) fs/namei.c:5561 (discriminator 1) fs/namei.c:5561 (discriminator 1))
[  362.957391]  invoke_syscall (arch/arm64/include/asm/current.h:19 arch/arm64/kernel/syscall.c:54)

Full log:

   https://lava.sirena.org.uk/scheduler/job/2407192#L3795

These appear to bisect to this commit, there were some issues with the
setup of the bisect which fortunately don't seem to have confused things
and some timeouts stopped the last couple of jobs completing but we've
got adjacent commits showing passes and fails and of the two candidates
the other is a refactoring that doesn't look at all plausible.  I'm
rerunning a clean bisect but expect it to confirm this result.

# good: [50814c5ce8d8f6751fd49c818abeb8853f8be2df] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git

...

# bad: [a85cfbd09f2d2f3bfab8fbe8246d0ae43a0c1628] Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
git bisect bad a85cfbd09f2d2f3bfab8fbe8246d0ae43a0c1628
# test job: [75fe66db9e85a2fd9743f7598a2aaea9eb5fbfd7] https://lava.sirena.org.uk/scheduler/job/2407316
# bad: [75fe66db9e85a2fd9743f7598a2aaea9eb5fbfd7] Merge branch 'xtensa-for-next' of https://github.com/jcmvbkbc/linux-xtensa.git
git bisect bad 75fe66db9e85a2fd9743f7598a2aaea9eb5fbfd7
# test job: [0578997f52fb9a1b9adfc5fe5a95ceab4bb331d2] https://lava.sirena.org.uk/scheduler/job/2407382
# bad: [0578997f52fb9a1b9adfc5fe5a95ceab4bb331d2] Merge branch 'soc_fsl' of https://git.kernel.org/pub/scm/linux/kernel/git/chleroy/linux.git
git bisect bad 0578997f52fb9a1b9adfc5fe5a95ceab4bb331d2
# test job: [a85886367078a64dcffefe0ccd9054f6237b791a] https://lava.sirena.org.uk/scheduler/job/2407432
# bad: [a85886367078a64dcffefe0ccd9054f6237b791a] Merge branch 'mm-unstable' of https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
git bisect bad a85886367078a64dcffefe0ccd9054f6237b791a
# test job: [3b545d6116fcf6d257bf2d50e7607351fdc81b76] https://lava.sirena.org.uk/scheduler/job/2407463
# good: [3b545d6116fcf6d257bf2d50e7607351fdc81b76] mm/memory: add tree limit to free_pgtables()
git bisect good 3b545d6116fcf6d257bf2d50e7607351fdc81b76
# test job: [8d2b3ef6f7d7b0a531c4c733224583af946a424b] https://lava.sirena.org.uk/scheduler/job/2407522
# good: [8d2b3ef6f7d7b0a531c4c733224583af946a424b] maple_tree: inline mas_wr_spanning_rebalance()
git bisect good 8d2b3ef6f7d7b0a531c4c733224583af946a424b
# test job: [b75bed193d677f6ae26df8851f4d5546fb7d3599] https://lava.sirena.org.uk/scheduler/job/2407554
# good: [b75bed193d677f6ae26df8851f4d5546fb7d3599] tsacct: skip all kernel threads
git bisect good b75bed193d677f6ae26df8851f4d5546fb7d3599
# test job: [4aededd81f86a8090ea8c294071425aa12116ef8] https://lava.sirena.org.uk/scheduler/job/2407597
# good: [4aededd81f86a8090ea8c294071425aa12116ef8] Merge branch 'pin-init-next' of https://github.com/Rust-for-Linux/linux.git
git bisect good 4aededd81f86a8090ea8c294071425aa12116ef8
# test job: [201b27d852d1aecf3abce28721c6004ec2690b8d] https://lava.sirena.org.uk/scheduler/job/2407634
# good: [201b27d852d1aecf3abce28721c6004ec2690b8d] Merge branch 'mm-nonmm-stable' of https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
git bisect good 201b27d852d1aecf3abce28721c6004ec2690b8d
# test job: [7bc25a7aa0443b3beb3610e505d3147eece02766] https://lava.sirena.org.uk/scheduler/job/2407673
# bad: [7bc25a7aa0443b3beb3610e505d3147eece02766] maple_tree: add cp_converged() helper
git bisect bad 7bc25a7aa0443b3beb3610e505d3147eece02766
# test job: [a2c17a4f4db66772701547fc30f66d1df2fceafb] https://lava.sirena.org.uk/scheduler/job/2407724
# good: [a2c17a4f4db66772701547fc30f66d1df2fceafb] maple_tree: add cp_is_new_root() helper
git bisect good a2c17a4f4db66772701547fc30f66d1df2fceafb
# test job: [525e5511c009c0d6725e534134ec31eeba148da0] https://lava.sirena.org.uk/scheduler/job/2407765
# bad: [525e5511c009c0d6725e534134ec31eeba148da0] maple_tree: add copy_tree_location() helper
git bisect bad 525e5511c009c0d6725e534134ec31eeba148da0
# test job: [6ad069085c621d39fad4d1835af7e563975dcf7e] https://lava.sirena.org.uk/scheduler/job/2407822
# skip: [6ad069085c621d39fad4d1835af7e563975dcf7e] maple_tree: use maple copy node for mas_wr_rebalance() operation
git bisect skip 6ad069085c621d39fad4d1835af7e563975dcf7e
# only skipped commits left to test
# possible first bad commit: [525e5511c009c0d6725e534134ec31eeba148da0] maple_tree: add copy_tree_location() helper
# possible first bad commit: [6ad069085c621d39fad4d1835af7e563975dcf7e] maple_tree: use maple copy node for mas_wr_rebalance() operation

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2026-01-27 23:05 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
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 [this message]
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=bd1c3356-11a1-4d0b-bf58-47eb21bfd24d@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=Aishwarya.TCV@arm.com \
    --cc=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=maple-tree@lists.infradead.org \
    --cc=sidhartha.kumar@oracle.com \
    --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