linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Hugh Dickins <hughd@google.com>
To: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Cc: linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org,
	 linux-mm@kvack.org, akpm@linux-foundation.org,
	liam.howlett@oracle.com,  willy@infradead.org,
	chuck.lever@oracle.com, hughd@google.com
Subject: Re: [PATCH v3 00/16] Introduce a store type enum for the Maple tree
Date: Tue, 25 Jun 2024 22:37:25 -0700 (PDT)	[thread overview]
Message-ID: <80926b22-a8d2-9992-eb5e-27e2c99cf460@google.com> (raw)
In-Reply-To: <20240618204750.79512-1-sidhartha.kumar@oracle.com>

On Tue, 18 Jun 2024, Sidhartha Kumar wrote:

> This series is rebased on top of mm-unstable + the patch:
> maple_tree: modified return type of mas_wr_store_entry()[1]. Andrew could
> you add that patch to mm-unstable before merging this series.
> 
> v2[2] -> v3:
>   - fix new line issues throughout the series
>   - remove use of helper function in patch 13 

Please give tmpfs a try on the latest mm-unstable, with
CONFIG_DEBUG_ATOMIC_SLEEP=y (maybe some of the messages below come from
other config options like PROVE_LOCKING, but ATOMIC_SLEEP the main one).

To the un-maple-trained eye, this series simply replaces a working maple
tree preallocation scheme by a broken one, doing GFP_KERNEL allocations
while holding spinlock.  But I doubt that was the intention: maybe a line
of code has gone missing or something, and you can quickly unbreak it.

 BUG: sleeping function called from invalid context at include/linux/sched/mm.h:337
 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 63, name: kdevtmpfs
 preempt_count: 1, expected: 0
 RCU nest depth: 0, expected: 0
 3 locks held by kdevtmpfs/63:
  #0: ffff8880008473f0 (sb_writers){.+.+}-{0:0}, at: mnt_want_write+0x19/0x40
  #1: ffff8880008a0888 (&type->i_mutex_dir_key/1){+.+.}-{3:3}, at: filename_create+0x8a/0x120
  #2: ffff8880008a0650 (&simple_offset_lock_class){+.+.}-{2:2}, at: mtree_alloc_cyclic+0x72/0xb0
 Preemption disabled at:
 [<ffffffff81138b94>] preempt_count_add+0x54/0x60
 CPU: 4 UID: 0 PID: 63 Comm: kdevtmpfs Not tainted 6.10.0-rc5-m25 #2
 Hardware name: LENOVO 20XXS3LA00/20XXS3LA00, BIOS N32ET91W (1.67 ) 02/02/2024
 Call Trace:
  <TASK>
  dump_stack_lvl+0x5d/0x80
  ? preempt_count_add+0x54/0x60
  dump_stack+0x10/0x20
  __might_resched+0x23b/0x260
  ? mas_alloc_nodes+0x71/0x160
  __might_sleep+0x56/0x60
  might_alloc+0x2a/0x40
  kmem_cache_alloc_noprof+0x28/0x190
  mas_alloc_nodes+0x71/0x160
  ? lock_is_held+0xc/0x10
  mas_node_count_gfp+0x2e/0x30
  mas_wr_preallocate+0x43/0x60
  mas_insert.isra.0+0x49/0xa0
  mas_alloc_cyclic+0x9c/0x100
  mtree_alloc_cyclic+0x92/0xb0
  simple_offset_add+0x3c/0x60
  shmem_mknod+0x55/0xb0
  vfs_mknod+0x9c/0xc0
  devtmpfs_work_loop+0x1c4/0x2a0
  ? trace_hardirqs_on+0x37/0x40
  ? _raw_spin_unlock_irqrestore+0x39/0x50
  ? complete_with_flags+0x40/0x50
  ? dmar_validate_one_drhd+0xa0/0xa0
  devtmpfsd+0x25/0x30
  kthread+0x100/0x110
  ? list_del_init+0x30/0x30
  ret_from_fork+0x22/0x40
  ? list_del_init+0x30/0x30
  ret_from_fork_asm+0x11/0x20

and lots more like that.

Thanks,
Hugh


      parent reply	other threads:[~2024-06-26  5:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18 20:47 Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 01/16] maple_tree: introduce store_type enum Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 02/16] maple_tree: introduce mas_wr_prealloc_setup() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 03/16] maple_tree: move up mas_wr_store_setup() and mas_wr_prealloc_setup() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 04/16] maple_tree: introduce mas_wr_store_type() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 05/16] maple_tree: remove mas_destroy() from mas_nomem() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 06/16] maple_tree: use mas_store_gfp() in mas_erase() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 07/16] maple_tree: use mas_store_gfp() in mtree_store_range() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 08/16] maple_tree: print store type in mas_dump() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 09/16] maple_tree: use store type in mas_wr_store_entry() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 10/16] maple_tree: convert mas_insert() to preallocate nodes Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 11/16] maple_tree: simplify mas_commit_b_node() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 12/16] maple_tree: remove mas_wr_modify() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 13/16] maple_tree: have mas_store() allocate nodes if needed Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 14/16] maple_tree: remove node allocations from various write helper functions Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 15/16] maple_tree: remove repeated sanity checks from mas_wr_append() Sidhartha Kumar
2024-06-18 20:47 ` [PATCH v3 16/16] maple_tree: remove unneeded mas_wr_walk() in mas_store_prealloc() Sidhartha Kumar
2024-06-24 15:43 ` [PATCH v3 00/16] Introduce a store type enum for the Maple tree Liam R. Howlett
2024-06-26  5:37 ` Hugh Dickins [this message]

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=80926b22-a8d2-9992-eb5e-27e2c99cf460@google.com \
    --to=hughd@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=chuck.lever@oracle.com \
    --cc=liam.howlett@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=maple-tree@lists.infradead.org \
    --cc=sidhartha.kumar@oracle.com \
    --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