From: Andrew Morton <akpm@linux-foundation.org>
To: ryabinin.a.a@gmail.com,glider@google.com,dvyukov@google.com,andreyknvl@gmail.com,qiang1.zhang@intel.com,akpm@linux-foundation.org,patches@lists.linux.dev,linux-mm@kvack.org,mm-commits@vger.kernel.org,torvalds@linux-foundation.org,akpm@linux-foundation.org
Subject: [patch 04/14] irq_work: use kasan_record_aux_stack_noalloc() record callstack
Date: Thu, 14 Apr 2022 19:13:34 -0700 [thread overview]
Message-ID: <20220415021334.B8140C385A7@smtp.kernel.org> (raw)
In-Reply-To: <20220414191240.9f86d15a3e3afd848a9839a6@linux-foundation.org>
From: Zqiang <qiang1.zhang@intel.com>
Subject: irq_work: use kasan_record_aux_stack_noalloc() record callstack
[ 4.113128] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
[ 4.113132] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 239, name: bootlogd
[ 4.113149] Preemption disabled at:
[ 4.113149] [<ffffffffbab1a531>] rt_mutex_slowunlock+0xa1/0x4e0
[ 4.113154] CPU: 3 PID: 239 Comm: bootlogd Tainted: G W
5.17.1-rt17-yocto-preempt-rt+ #105
[ 4.113157] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009),
BIOS rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org 04/01/2014
[ 4.113159] Call Trace:
[ 4.113160] <TASK>
[ 4.113161] dump_stack_lvl+0x60/0x8c
[ 4.113165] dump_stack+0x10/0x12
[ 4.113167] __might_resched.cold+0x13b/0x173
[ 4.113172] rt_spin_lock+0x5b/0xf0
[ 4.113179] get_page_from_freelist+0x20c/0x1610
[ 4.113208] __alloc_pages+0x25e/0x5e0
[ 4.113222] __stack_depot_save+0x3c0/0x4a0
[ 4.113228] kasan_save_stack+0x3a/0x50
[ 4.113322] __kasan_record_aux_stack+0xb6/0xc0
[ 4.113326] kasan_record_aux_stack+0xe/0x10
[ 4.113329] irq_work_queue_on+0x6a/0x1c0
[ 4.113333] pull_rt_task+0x631/0x6b0
[ 4.113343] do_balance_callbacks+0x56/0x80
[ 4.113346] __balance_callbacks+0x63/0x90
[ 4.113350] rt_mutex_setprio+0x349/0x880
[ 4.113366] rt_mutex_slowunlock+0x22a/0x4e0
[ 4.113377] rt_spin_unlock+0x49/0x80
[ 4.113380] uart_write+0x186/0x2b0
[ 4.113385] do_output_char+0x2e9/0x3a0
[ 4.113389] n_tty_write+0x306/0x800
[ 4.113413] file_tty_write.isra.0+0x2af/0x450
[ 4.113422] tty_write+0x22/0x30
[ 4.113425] new_sync_write+0x27c/0x3a0
[ 4.113446] vfs_write+0x3f7/0x5d0
[ 4.113451] ksys_write+0xd9/0x180
[ 4.113463] __x64_sys_write+0x43/0x50
[ 4.113466] do_syscall_64+0x44/0x90
[ 4.113469] entry_SYSCALL_64_after_hwframe+0x44/0xae
On PREEMPT_RT kernel and KASAN is enabled. the kasan_record_aux_stack()
may call alloc_pages(), and the rt-spinlock will be acquired, if currently
in atomic context, will trigger warning. fix it by use
kasan_record_aux_stack_noalloc() to avoid call alloc_pages().
Link: https://lkml.kernel.org/r/20220402142555.2699582-1-qiang1.zhang@intel.com
Signed-off-by: Zqiang <qiang1.zhang@intel.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
kernel/irq_work.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/kernel/irq_work.c~irq_work-use-kasan_record_aux_stack_noalloc-record-callstack
+++ a/kernel/irq_work.c
@@ -137,7 +137,7 @@ bool irq_work_queue_on(struct irq_work *
if (!irq_work_claim(work))
return false;
- kasan_record_aux_stack(work);
+ kasan_record_aux_stack_noalloc(work);
preempt_disable();
if (cpu != smp_processor_id()) {
_
next prev parent reply other threads:[~2022-04-15 2:13 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-15 2:12 incoming Andrew Morton
2022-04-15 2:13 ` [patch 01/14] MAINTAINERS: Broadcom internal lists aren't maintainers Andrew Morton
2022-04-15 2:13 ` [patch 02/14] tmpfs: fix regressions from wider use of ZERO_PAGE Andrew Morton
2022-04-15 22:10 ` Linus Torvalds
2022-04-15 22:21 ` Matthew Wilcox
2022-04-15 22:41 ` Hugh Dickins
[not found] ` <Ylpj9of+CP4ipDtm@zn.tnic>
2022-04-16 14:07 ` Mark Hemment
[not found] ` <Ylr8rR+LHQ1uGL47@zn.tnic>
2022-04-16 17:42 ` Linus Torvalds
[not found] ` <Ylsx5PwyUPOainHa@zn.tnic>
[not found] ` <YlxtTNFP58TcUHZQ@zn.tnic>
2022-04-17 20:56 ` Linus Torvalds
[not found] ` <Yl06PWVgeZplboXV@zn.tnic>
2022-04-18 17:10 ` Linus Torvalds
[not found] ` <Yl5+DCfQmG5C3BHf@zn.tnic>
2022-04-19 16:41 ` Linus Torvalds
[not found] ` <Yl7146AZDgfLviVv@zn.tnic>
[not found] ` <YmFy8DEqvX4FlnuB@zn.tnic>
[not found] ` <CAHk-=wgf2C9nFiC+3UFG4k7XVTQq5aV6fasSYuT_nQeo_Yew6A@mail.gmail.com>
2022-04-21 17:22 ` Linus Torvalds
[not found] ` <YmWm5AXdwgwu57KZ@zn.tnic>
2022-04-24 19:54 ` Linus Torvalds
2022-04-24 20:24 ` Linus Torvalds
[not found] ` <YmiK7Bos+zLAvL0t@zn.tnic>
2022-04-27 1:29 ` Linus Torvalds
[not found] ` <YmkdxaKdc2w/3I7o@zn.tnic>
2022-04-27 16:00 ` Linus Torvalds
[not found] ` <YnLMSWbz6BNfsBME@zn.tnic>
2022-05-04 19:22 ` Linus Torvalds
[not found] ` <YnLfl6lupN2nq7+t@zn.tnic>
2022-05-04 20:40 ` Linus Torvalds
[not found] ` <YnLplKy0Y66SsvQw@zn.tnic>
2022-05-04 21:09 ` Linus Torvalds
[not found] ` <Ynow8F3G8Kl6V3gu@zn.tnic>
2022-05-10 17:17 ` clear_user (was: [patch 02/14] tmpfs: fix regressions from wider use of ZERO_PAGE) Linus Torvalds
2022-05-10 17:28 ` Linus Torvalds
[not found] ` <YnqqhmYv75p+xl73@zn.tnic>
[not found] ` <Ynq1nVpu1xCpjnXm@zn.tnic>
2022-05-24 12:32 ` [PATCH] x86/clear_user: Make it faster Borislav Petkov
2022-05-24 16:51 ` Linus Torvalds
2022-05-24 17:30 ` Borislav Petkov
2022-05-25 12:11 ` Mark Hemment
2022-05-27 11:28 ` Borislav Petkov
2022-05-27 11:10 ` Ingo Molnar
2022-06-22 14:21 ` Borislav Petkov
2022-06-22 15:06 ` Linus Torvalds
2022-06-22 20:14 ` Borislav Petkov
2022-06-22 21:07 ` Linus Torvalds
2022-06-23 9:41 ` Borislav Petkov
2022-07-05 17:01 ` [PATCH -final] " Borislav Petkov
2022-07-06 9:24 ` Alexey Dobriyan
2022-07-11 10:33 ` Borislav Petkov
2022-07-12 12:32 ` Alexey Dobriyan
2022-08-06 12:49 ` Borislav Petkov
2022-04-15 2:13 ` [patch 03/14] mm/secretmem: fix panic when growing a memfd_secret Andrew Morton
2022-04-15 2:13 ` Andrew Morton [this message]
2022-04-15 2:13 ` [patch 05/14] kasan: fix hw tags enablement when KUNIT tests are disabled Andrew Morton
2022-04-15 2:13 ` [patch 06/14] mm, kfence: support kmem_dump_obj() for KFENCE objects Andrew Morton
2022-04-15 2:13 ` [patch 08/14] mm: fix unexpected zeroed page mapping with zram swap Andrew Morton
2022-04-15 2:13 ` [patch 09/14] mm: compaction: fix compiler warning when CONFIG_COMPACTION=n Andrew Morton
2022-04-15 2:13 ` [patch 10/14] hugetlb: do not demote poisoned hugetlb pages Andrew Morton
2022-04-15 2:13 ` [patch 11/14] revert "fs/binfmt_elf: fix PT_LOAD p_align values for loaders" Andrew Morton
2022-04-15 2:13 ` [patch 12/14] revert "fs/binfmt_elf: use PT_LOAD p_align values for static PIE" Andrew Morton
2022-04-15 2:14 ` [patch 13/14] mm/vmalloc: fix spinning drain_vmap_work after reading from /proc/vmcore Andrew Morton
2022-04-15 2:14 ` [patch 14/14] mm: kmemleak: take a full lowmem check in kmemleak_*_phys() Andrew Morton
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=20220415021334.B8140C385A7@smtp.kernel.org \
--to=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=dvyukov@google.com \
--cc=glider@google.com \
--cc=linux-mm@kvack.org \
--cc=mm-commits@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=qiang1.zhang@intel.com \
--cc=ryabinin.a.a@gmail.com \
--cc=torvalds@linux-foundation.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;
as well as URLs for NNTP newsgroup(s).