ntb: Add more debugfs support for ntb_perf testing options
authorGary R Hook <gary.hook@amd.com>
Tue, 9 May 2017 14:33:36 +0000 (09:33 -0500)
committerJon Mason <jdmason@kudzu.us>
Thu, 6 Jul 2017 15:30:08 +0000 (11:30 -0400)
The ntb_perf tool uses module parameters to control the
characteristics of its test.  Enable the changing of these
options through debugfs, and eliminating the need to unload
and reload the module to make changes and run additional tests.

Add a new module parameter that forces the DMA channel
selection onto the same node as the NTB device (default: true).

 - seg_order: Size of the NTB memory window; power of 2.
 - run_order: Size of the data buffer; power of 2.
 - use_dma:   Use DMA or memcpy? Default: 0.
 - on_node:   Only use DMA channel(s) on the NTB node. Default: true.

Signed-off-by: Gary R Hook <gary.hook@amd.com>
Acked-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
drivers/ntb/test/ntb_perf.c

index 60e0dd320aefef765a18ad454268dd3fdcefeb2f..6fdddf86269efad74d455a2ef77c44198babb428 100644 (file)
@@ -737,6 +737,10 @@ static int perf_debugfs_setup(struct perf_ctx *perf)
        struct dentry *debugfs_node_dir;
        struct dentry *debugfs_run;
        struct dentry *debugfs_threads;
        struct dentry *debugfs_node_dir;
        struct dentry *debugfs_run;
        struct dentry *debugfs_threads;
+       struct dentry *debugfs_seg_order;
+       struct dentry *debugfs_run_order;
+       struct dentry *debugfs_use_dma;
+       struct dentry *debugfs_on_node;
 
        if (!debugfs_initialized())
                return -ENODEV;
 
        if (!debugfs_initialized())
                return -ENODEV;
@@ -764,6 +768,30 @@ static int perf_debugfs_setup(struct perf_ctx *perf)
        if (!debugfs_threads)
                return -ENODEV;
 
        if (!debugfs_threads)
                return -ENODEV;
 
+       debugfs_seg_order = debugfs_create_u32("seg_order", 0600,
+                                              debugfs_node_dir,
+                                              &seg_order);
+       if (!debugfs_seg_order)
+               return -ENODEV;
+
+       debugfs_run_order = debugfs_create_u32("run_order", 0600,
+                                              debugfs_node_dir,
+                                              &run_order);
+       if (!debugfs_run_order)
+               return -ENODEV;
+
+       debugfs_use_dma = debugfs_create_bool("use_dma", 0600,
+                                              debugfs_node_dir,
+                                              &use_dma);
+       if (!debugfs_use_dma)
+               return -ENODEV;
+
+       debugfs_on_node = debugfs_create_bool("on_node", 0600,
+                                             debugfs_node_dir,
+                                             &on_node);
+       if (!debugfs_on_node)
+               return -ENODEV;
+
        return 0;
 }
 
        return 0;
 }