LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: 이용택 <ytk.lee@samsung.com>
To: "pmladek@suse.com" <pmladek@suse.com>,
"senozhatsky@chromium.org" <senozhatsky@chromium.org>,
"rostedt@goodmis.org" <rostedt@goodmis.org>,
"john.ogness@linutronix.de" <john.ogness@linutronix.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: 이용택 <ytk.lee@samsung.com>
Subject: [PATCH] printk: use kvmalloc instead of kmalloc for devkmsg_user
Date: Mon, 30 Aug 2021 16:17:01 +0900 [thread overview]
Message-ID: <20210830071701epcms1p70f72ae10940bc407a3c33746d20da771@epcms1p7> (raw)
In-Reply-To: <CGME20210830071701epcms1p70f72ae10940bc407a3c33746d20da771@epcms1p7>
Size of struct devkmsg_user increased to 16784 by commit 896fbe20b4e2
("printk: use the lockless ringbuffer") so order3(32kb) is needed for
kmalloc. Under stress conditions the kernel may temporary fail to
allocate 32k with kmalloc. Use kvmalloc instead of kmalloc to aviod
this issue.
qseecomd invoked oom-killer: gfp_mask=0x40cc0(GFP_KERNEL|__GFP_COMP), order=3, oom_score_adj=-1000
Call trace:
dump_backtrace+0x0/0x34c
dump_stack_lvl+0xd4/0x16c
dump_header+0x5c/0x338
out_of_memory+0x374/0x4cc
__alloc_pages_slowpath+0xbc8/0x1130
__alloc_pages_nodemask+0x170/0x1b0
kmalloc_order+0x5c/0x24c
devkmsg_open+0x1f4/0x558
memory_open+0x94/0xf0
chrdev_open+0x288/0x3dc
do_dentry_open+0x2b4/0x618
path_openat+0xce4/0xfa8
do_filp_open+0xb0/0x164
do_sys_openat2+0xa8/0x264
__arm64_sys_openat+0x70/0xa0
el0_svc_common+0xc4/0x270
el0_svc+0x34/0x9c
el0_sync_handler+0x88/0xf0
el0_sync+0x1bc/0x200
DMA32: 4521*4kB (UMEC) 1377*8kB (UMECH) 73*16kB (UM) 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 30268kB
Normal: 2490*4kB (UMEH) 277*8kB (UMH) 27*16kB (UH) 1*32kB (H) 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 12640kB
Signed-off-by: Yong-Taek Lee <ytk.lee@samsung.com>
---
kernel/printk/printk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 142a58d124d9..8ba1602232ec 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -862,7 +862,7 @@ static int devkmsg_open(struct inode *inode, struct file *file)
return err;
}
- user = kmalloc(sizeof(struct devkmsg_user), GFP_KERNEL);
+ user = kvmalloc(sizeof(struct devkmsg_user), GFP_KERNEL);
if (!user)
return -ENOMEM;
@@ -892,7 +892,7 @@ static int devkmsg_release(struct inode *inode, struct file *file)
ratelimit_state_exit(&user->rs);
mutex_destroy(&user->lock);
- kfree(user);
+ kvfree(user);
return 0;
}
--
2.17.1
next parent reply other threads:[~2021-08-30 7:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20210830071701epcms1p70f72ae10940bc407a3c33746d20da771@epcms1p7>
2021-08-30 7:17 ` 이용택 [this message]
2021-08-31 12:42 ` Petr Mladek
2021-08-31 23:02 ` Sergey Senozhatsky
2021-09-07 13:23 ` Petr Mladek
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=20210830071701epcms1p70f72ae10940bc407a3c33746d20da771@epcms1p7 \
--to=ytk.lee@samsung.com \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--subject='Re: [PATCH] printk: use kvmalloc instead of kmalloc for devkmsg_user' \
/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
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).