dmaengine: remove debugfs #ifdef
Subsystems (3)
PATCH 1/1 dmaengine: remove debugfs #ifdef
From: Arnd Bergmann <[email protected]>
The ptdma driver has added debugfs support, but this fails to build when debugfs is disabled:
drivers/dma/ptdma/ptdma-debugfs.c: In function 'ptdma_debugfs_setup':drivers/dma/ptdma/ptdma-debugfs.c:93:54: error: 'struct dma_device' has no member named 'dbg_dev_root'
93 | debugfs_create_file("info", 0400, pt->dma_dev.dbg_dev_root, pt,
| ^drivers/dma/ptdma/ptdma-debugfs.c:96:55: error: 'struct dma_device' has no member named 'dbg_dev_root'
96 | debugfs_create_file("stats", 0400, pt->dma_dev.dbg_dev_root, pt,
| ^drivers/dma/ptdma/ptdma-debugfs.c:102:52: error: 'struct dma_device' has no member named 'dbg_dev_root'
102 | debugfs_create_dir("q", pt->dma_dev.dbg_dev_root);
| ^
Remove the #ifdef in the header, as this only saves a few bytes, but would require ugly #ifdefs in each driver using it. Simplify the other user while we're at it.
--- drivers/dma/xilinx/xilinx_dpdma.c | 15 +-------------- include/linux/dmaengine.h | 2 -- 2 files changed, 1 insertion(+), 16 deletions(-)
drivers/dma/xilinx/xilinx_dpdma.c +1 -14
@@ -271,9 +271,6 @@ struct xilinx_dpdma_device {/* ----------------------------------------------------------------------------- * DebugFS */ - -#ifdef CONFIG_DEBUG_FS -#define XILINX_DPDMA_DEBUGFS_READ_MAX_SIZE 32#define XILINX_DPDMA_DEBUGFS_UINT16_MAX_STR "65535"
@@ -299,7 +296,7 @@ struct xilinx_dpdma_debugfs_request {static void xilinx_dpdma_debugfs_desc_done_irq (struct xilinx_dpdma_chan *chan) { -if (chan->id == dpdma_debugfs.chan_id) +if (IS_ENABLED (CONFIG_DEBUG_FS ) && chan->id == dpdma_debugfs.chan_id) dpdma_debugfs.xilinx_dpdma_irq_done_count++; }
@@ -462,16 +459,6 @@ static void xilinx_dpdma_debugfs_init(struct xilinx_dpdma_device *xdev)dev_err (xdev->dev,"Failed to create debugfs testcase file\n" ); } -#else -static void xilinx_dpdma_debugfs_init (struct xilinx_dpdma_device *xdev) -{ -} - -static void xilinx_dpdma_debugfs_desc_done_irq (struct xilinx_dpdma_chan *chan) -{ -} -#endif /* CONFIG_DEBUG_FS */ -/* ----------------------------------------------------------------------------- * I/O Accessors */
include/linux/dmaengine.h +0 -2
@@ -944,10 +944,8 @@ struct dma_device {void (*device_issue_pending)(struct dma_chan *chan);void (*device_release)(struct dma_device *dev);/* debugfs support */ -#ifdef CONFIG_DEBUG_FS void (*dbg_summary_show)(struct seq_file *s,struct dma_device *dev);struct dentry *dbg_dev_root; -#endif }; static inline int dmaengine_slave_config(struct dma_chan *chan,
Signature · 1 line
2.29.2
Laurent Pinchart
maintainerHi Arnd,
Thank you for the patch.
Quoted 33 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
The ptdma driver has added debugfs support, but this fails to build when debugfs is disabled:
drivers/dma/ptdma/ptdma-debugfs.c: In function 'ptdma_debugfs_setup':drivers/dma/ptdma/ptdma-debugfs.c:93:54: error: 'structdma_device' has no member named 'dbg_dev_root'
93 | debugfs_create_file("info", 0400,pt->dma_dev.dbg_dev_root, pt,
| ^drivers/dma/ptdma/ptdma-debugfs.c:96:55: error: 'structdma_device' has no member named 'dbg_dev_root'
96 | debugfs_create_file("stats", 0400,pt->dma_dev.dbg_dev_root, pt,
| ^drivers/dma/ptdma/ptdma-debugfs.c:102:52: error: 'structdma_device' has no member named 'dbg_dev_root'
102 |debugfs_create_dir("q", pt->dma_dev.dbg_dev_root);
| ^Remove the #ifdef in the header, as this only saves a few bytes, but would require ugly #ifdefs in each driver using it. Simplify the other user while we're at it.
Fixes e2fb2e2a33fa ("dmaengine: ptdma: Add debugfs entries for PTDMA")Fixes 26cf132de6f7 ("dmaengine: Create debug directories for DMA devices")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/dma/xilinx/xilinx_dpdma.c | 15 +-------------- include/linux/dmaengine.h | 2 -- 2 files changed, 1 insertion(+), 16 deletions(-)drivers/dma/xilinx/xilinx_dpdma.c +0
-0
drivers/dma/xilinx/xilinx_dpdma.c struct xilinx_dpdma_device { · line 276
Quoted 6 lines
drivers/dma/xilinx/xilinx_dpdma.c +0
-3@@ -271,9 +271,6 @@ struct xilinx_dpdma_device {/* ----------------------------------------------------------------------------- * DebugFS */ - -#ifdef CONFIG_DEBUG_FS -
It's only a few bytes of data in struct dma_device, but a bit more in .text here. Is the simplification really required in this driver ?
Quoted 44 lines
drivers/dma/xilinx/xilinx_dpdma.c +1
-11#define XILINX_DPDMA_DEBUGFS_READ_MAX_SIZE 32#define XILINX_DPDMA_DEBUGFS_UINT16_MAX_STR "65535"@@ -299,7 +296,7 @@ struct xilinx_dpdma_debugfs_request {static void xilinx_dpdma_debugfs_desc_done_irq (struct xilinx_dpdma_chan *chan) { -if (chan->id == dpdma_debugfs.chan_id) +if (IS_ENABLED (CONFIG_DEBUG_FS ) && chan->id == dpdma_debugfs.chan_id) dpdma_debugfs.xilinx_dpdma_irq_done_count++; }@@ -462,16 +459,6 @@ static void xilinx_dpdma_debugfs_init(struct xilinx_dpdma_device *xdev)dev_err (xdev->dev,"Failed to create debugfs testcase file\n" ); } -#else -static void xilinx_dpdma_debugfs_init (struct xilinx_dpdma_device *xdev) -{ -} - -static void xilinx_dpdma_debugfs_desc_done_irq (struct xilinx_dpdma_chan *chan) -{ -} -#endif /* CONFIG_DEBUG_FS */ -/* ----------------------------------------------------------------------------- * I/O Accessors */ include/linux/dmaengine.h +0
-2@@ -944,10 +944,8 @@ struct dma_device {void (*device_issue_pending)(struct dma_chan *chan);void (*device_release)(struct dma_device *dev);/* debugfs support */ -#ifdef CONFIG_DEBUG_FS void (*dbg_summary_show)(struct seq_file *s,struct dma_device *dev);struct dentry *dbg_dev_root; -#endif }; static inline int dmaengine_slave_config(struct dma_chan *chan,
Signature · 3 lines
Regards, Laurent Pinchart
Quoted 3 lines · Laurent Pinchart
It's only a few bytes of data in struct
dma_device, but a bit more in .text here. Is the simplification really required in this driver ?
The intention was to not change the resulting object code in this driver, and I still don't see where it would grow after dead-code-elimination removes all the unused static functions. What am I missing?
Arnd
Hi Arnd,
Quoted 8 lines · Arnd Bergmann
Quoted 3 lines · Laurent Pinchart
It's only a few bytes of data in struct
dma_device, but a bit more in .text here. Is the simplification really required in this driver ?The intention was to not change the resulting object code in this driver, and I still don't see where it would grow after dead-code-elimination removes all the unused static functions. What am I missing?
Indeed, gcc does a fairly good job there. The .text section doesn't grow. Interestingly, there's an increase in size in the .data and .rodata sections in the xilinx-dpdma module:
- 8 .rodata.str1.8 0000029f 0000000000000000 0000000000000000 00003660 2**3 + 8 .rodata.str1.8 000002a7 0000000000000000 0000000000000000 00003660 2**3
- 10 .rodata 00001080 0000000000000000 0000000000000000 00003960 2**5 + 10 .rodata 000010e0 0000000000000000 0000000000000000 00003960 2**5
- 15 .data 00001050 0000000000000000 0000000000000000 00004e40 2**5 + 15 .data 00001090 0000000000000000 0000000000000000 00004ea0 2**5
I'm not entirely sure where it comes from, it may be related to instrumentation caused by debugging options.
For your patch,
Signature · 3 lines
Regards, Laurent Pinchart
Quoted 16 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
The ptdma driver has added debugfs support, but this fails to build when debugfs is disabled:
drivers/dma/ptdma/ptdma-debugfs.c: In function 'ptdma_debugfs_setup':drivers/dma/ptdma/ptdma-debugfs.c:93:54: error: 'structdma_device' has no member named 'dbg_dev_root'
93 | debugfs_create_file("info", 0400,pt->dma_dev.dbg_dev_root, pt,
| ^drivers/dma/ptdma/ptdma-debugfs.c:96:55: error: 'structdma_device' has no member named 'dbg_dev_root'
96 | debugfs_create_file("stats", 0400,pt->dma_dev.dbg_dev_root, pt,
| ^drivers/dma/ptdma/ptdma-debugfs.c:102:52: error: 'structdma_device' has no member named 'dbg_dev_root'
102 |debugfs_create_dir("q", pt->dma_dev.dbg_dev_root);
| ^
Quoted 3 lines
Remove the #ifdef in the header, as this only saves a few bytes, but would require ugly #ifdefs in each driver using it. Simplify the other user while we're at it.
Applied, thanks
Signature · 1 line
~Vinod