mm/cma_debug: show complete cma name in debugfs directories
authorCharan Teja Kalla <quic_charante@quicinc.com>
Thu, 11 Aug 2022 13:15:29 +0000 (18:45 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 Sep 2022 03:25:50 +0000 (20:25 -0700)
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.

Link: https://lkml.kernel.org/r/1660223729-22461-1-git-send-email-quic_charante@quicinc.com
Signed-off-by: Charan Teja Kalla <quic_charante@quicinc.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Pavan Kondeti <quic_pkondeti@quicinc.com>
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Documentation/admin-guide/mm/cma_debugfs.rst
mm/cma_debug.c

index 4e06ffa..7367e62 100644 (file)
@@ -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.
index c3ffe25..602fff8 100644 (file)
@@ -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[CMA_MAX_NAME];
 
-       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);