[PATCH V2] mm/cma_debug: show complete cma name in debugfs directories

From: Charan Teja Kalla
Date: Thu Aug 11 2022 - 09:16:15 EST


Currently only 12 characters of the cma name is being used as the debug
directories where as the cma name can be of length CMA_MAX_NAME(=64)
characters. One side problem with this is having 2 cma's with first
common 12 characters would end up in trying to create directories with
same name and fails with -EEXIST thus can limit cma debug functionality.

The 'cma-' prefix is used initially where cma areas don't have any names
and are represented by simple integer values. Since now each cma would
be having its own name, drop 'cma-' prefix for the cma debug directories
as they are clearly evident that they are for cma debug through creating
them in /sys/kernel/debug/cma/ path.

Signed-off-by: Charan Teja Kalla <quic_charante@xxxxxxxxxxx>
---
V2:
o Updated the cma_debugfs.rst documentation.
Vl:
o https://lore.kernel.org/all/1660152485-17684-1-git-send-email-quic_charante@xxxxxxxxxxx/

Documentation/admin-guide/mm/cma_debugfs.rst | 10 +++++-----
mm/cma_debug.c | 5 +----
2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/Documentation/admin-guide/mm/cma_debugfs.rst b/Documentation/admin-guide/mm/cma_debugfs.rst
index 4e06ffa..7367e62 100644
--- a/Documentation/admin-guide/mm/cma_debugfs.rst
+++ b/Documentation/admin-guide/mm/cma_debugfs.rst
@@ -5,10 +5,10 @@ CMA Debugfs Interface
The CMA debugfs interface is useful to retrieve basic information out of the
different CMA areas and to test allocation/release in each of the areas.

-Each CMA zone represents a directory under <debugfs>/cma/, indexed by the
-kernel's CMA index. So the first CMA zone would be:
+Each CMA area represents a directory under <debugfs>/cma/, represented by
+its CMA name like below:

- <debugfs>/cma/cma-0
+ <debugfs>/cma/<cma_name>

The structure of the files created under that directory is as follows:

@@ -18,8 +18,8 @@ The structure of the files created under that directory is as follows:
- [RO] bitmap: The bitmap of page states in the zone.
- [WO] alloc: Allocate N pages from that CMA area. For example::

- echo 5 > <debugfs>/cma/cma-2/alloc
+ echo 5 > <debugfs>/cma/<cma_name>/alloc

-would try to allocate 5 pages from the cma-2 area.
+would try to allocate 5 pages from the 'cma_name' area.

- [WO] free: Free N pages from that CMA area, similar to the above.
diff --git a/mm/cma_debug.c b/mm/cma_debug.c
index 2e77049..602fff8 100644
--- a/mm/cma_debug.c
+++ b/mm/cma_debug.c
@@ -163,11 +163,8 @@ DEFINE_DEBUGFS_ATTRIBUTE(cma_alloc_fops, NULL, cma_alloc_write, "%llu\n");
static void cma_debugfs_add_one(struct cma *cma, struct dentry *root_dentry)
{
struct dentry *tmp;
- char name[16];

- scnprintf(name, sizeof(name), "cma-%s", cma->name);
-
- tmp = debugfs_create_dir(name, root_dentry);
+ tmp = debugfs_create_dir(cma->name, root_dentry);

debugfs_create_file("alloc", 0200, tmp, cma, &cma_alloc_fops);
debugfs_create_file("free", 0200, tmp, cma, &cma_free_fops);
--
2.7.4