Re: [PATCH v34 07/13] mm/damon: Implement a debugfs-based user space interface
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2021-08-06 00:43:11
Also in:
linux-mm, lkml
On Fri, 16 Jul 2021 08:14:43 +0000 SeongJae Park [off-list ref] wrote:
From: SeongJae Park <redacted>
DAMON is designed to be used by kernel space code such as the memory
management subsystems, and therefore it provides only kernel space API.
That said, letting the user space control DAMON could provide some
benefits to them. For example, it will allow user space to analyze
their specific workloads and make their own special optimizations.
For such cases, this commit implements a simple DAMON application kernel
module, namely 'damon-dbgfs', which merely wraps the DAMON api and
exports those to the user space via the debugfs.
...
+static int __init damon_dbgfs_init(void)
+{
+ int rc;
+
+ dbgfs_ctxs = kmalloc(sizeof(*dbgfs_ctxs), GFP_KERNEL);
+ if (!dbgfs_ctxs) {
+ pr_err("%s: dbgfs ctxs alloc failed\n", __func__);
+ return -ENOMEM;
+ }
+ dbgfs_ctxs[0] = dbgfs_new_ctx();
+ if (!dbgfs_ctxs[0]) {
+ kfree(dbgfs_ctxs);
+ pr_err("%s: dbgfs ctx alloc failed\n", __func__);
+ return -ENOMEM;
+ }checkpatch points out that the "alloc failed" messages are unneeded - kmalloc(GFP_KERNEL) will have already emitted a stack trace. Is this fixup OK?
--- a/mm/damon/dbgfs.c~mm-damon-implement-a-debugfs-based-user-space-interface-fix
+++ a/mm/damon/dbgfs.c@@ -373,14 +373,11 @@ static int __init damon_dbgfs_init(void) int rc; dbgfs_ctxs = kmalloc(sizeof(*dbgfs_ctxs), GFP_KERNEL); - if (!dbgfs_ctxs) { - pr_err("%s: dbgfs ctxs alloc failed\n", __func__); + if (!dbgfs_ctxs) return -ENOMEM; - } dbgfs_ctxs[0] = dbgfs_new_ctx(); if (!dbgfs_ctxs[0]) { kfree(dbgfs_ctxs); - pr_err("%s: dbgfs ctx alloc failed\n", __func__); return -ENOMEM; } dbgfs_nr_ctxs = 1;
_