From: Frederic Weisbecker <fweisbec@gmail.com>
To: Joerg Roedel <joerg.roedel@amd.com>
Cc: mingo@redhat.com, linux-kernel@vger.kernel.org,
iommu@lists.linux-foundation.org
Subject: Re: [PATCH 07/18] dma-debug: add debugfs interface
Date: Fri, 6 Mar 2009 14:45:28 +0100 [thread overview]
Message-ID: <20090306134527.GD5988@nowhere> (raw)
In-Reply-To: <1236346229-6618-8-git-send-email-joerg.roedel@amd.com>
On Fri, Mar 06, 2009 at 02:30:18PM +0100, Joerg Roedel wrote:
> Impact: add debugfs interface for configuring DMA-API debugging
>
> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> ---
> lib/dma-debug.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 78 insertions(+), 0 deletions(-)
>
> diff --git a/lib/dma-debug.c b/lib/dma-debug.c
> index 2ede463..20d6cdb 100644
> --- a/lib/dma-debug.c
> +++ b/lib/dma-debug.c
> @@ -19,6 +19,7 @@
>
> #include <linux/dma-debug.h>
> #include <linux/spinlock.h>
> +#include <linux/debugfs.h>
> #include <linux/types.h>
> #include <linux/list.h>
> #include <linux/slab.h>
> @@ -61,12 +62,29 @@ static DEFINE_SPINLOCK(free_entries_lock);
> /* Global disable flag - will be set in case of an error */
> static bool global_disable __read_mostly;
>
> +/* Global error count */
> +static u32 error_count;
> +
> +/* Global error show enable*/
> +static u32 show_all_errors __read_mostly;
> +/* Number of errors to show */
> +static u32 show_num_errors = 1;
> +
> static u32 num_free_entries;
> static u32 min_free_entries;
>
> /* number of preallocated entries requested by kernel cmdline */
> static u32 req_entries;
>
> +/* debugfs dentry's for the stuff above */
> +static struct dentry *dma_debug_dent __read_mostly;
> +static struct dentry *global_disable_dent __read_mostly;
> +static struct dentry *error_count_dent __read_mostly;
> +static struct dentry *show_all_errors_dent __read_mostly;
> +static struct dentry *show_num_errors_dent __read_mostly;
> +static struct dentry *num_free_entries_dent __read_mostly;
> +static struct dentry *min_free_entries_dent __read_mostly;
> +
> /*
> * Hash related functions
> *
> @@ -241,6 +259,58 @@ out_err:
> return -ENOMEM;
> }
>
> +static int dma_debug_fs_init(void)
> +{
> + dma_debug_dent = debugfs_create_dir("dma-api", NULL);
> + if (!dma_debug_dent) {
> + printk(KERN_ERR "DMA-API: can not create debugfs directory\n");
> + return -ENOMEM;
> + }
> +
> + global_disable_dent = debugfs_create_bool("disabled", 0444,
> + dma_debug_dent,
> + (u32 *)&global_disable);
> + if (!global_disable_dent)
> + goto out_err;
> +
> + error_count_dent = debugfs_create_u32("error_count", 0444,
> + dma_debug_dent, &error_count);
> + if (!error_count_dent)
> + goto out_err;
> +
> + show_all_errors_dent = debugfs_create_u32("all_errors", 0644,
> + dma_debug_dent,
> + &show_all_errors);
> + if (!show_all_errors_dent)
> + goto out_err;
> +
> + show_num_errors_dent = debugfs_create_u32("num_errors", 0644,
> + dma_debug_dent,
> + &show_num_errors);
> + if (!show_num_errors_dent)
> + goto out_err;
> +
> + num_free_entries_dent = debugfs_create_u32("num_free_entries", 0444,
> + dma_debug_dent,
> + &num_free_entries);
> + if (!num_free_entries_dent)
> + goto out_err;
> +
> + min_free_entries_dent = debugfs_create_u32("min_free_entries", 0444,
> + dma_debug_dent,
> + &min_free_entries);
> + if (!min_free_entries_dent)
> + goto out_err;
Hi,
At least for the read-only files, why not create a single file
which displays num_free_entries, min_free_entries and global disable?
> +
> + return 0;
> +
> +out_err:
> + debugfs_remove_recursive(dma_debug_dent);
> +
> + return -ENOMEM;
> +}
> +
> +
> /*
> * Let the architectures decide how many entries should be preallocated.
> */
> @@ -256,6 +326,14 @@ void dma_debug_init(u32 num_entries)
> dma_entry_hash[i].lock = SPIN_LOCK_UNLOCKED;
> }
>
> + if (dma_debug_fs_init() != 0) {
> + printk(KERN_ERR "DMA-API: error creating debugfs entries "
> + "- disabling\n");
> + global_disable = true;
> +
> + return;
> + }
> +
> if (req_entries)
> num_entries = req_entries;
>
> --
> 1.5.6.4
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2009-03-06 13:45 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-06 13:30 [PATCH 0/18] DMA-API debugging facility v4 Joerg Roedel
2009-03-06 13:30 ` [PATCH 01/18] dma-debug: add Kconfig entry Joerg Roedel
2009-03-06 13:30 ` [PATCH 02/18] dma-debug: add header file and core data structures Joerg Roedel
2009-03-06 13:30 ` [PATCH 03/18] dma-debug: add hash functions for dma_debug_entries Joerg Roedel
2009-03-06 13:50 ` Frederic Weisbecker
2009-03-06 18:45 ` Cyrill Gorcunov
2009-03-06 19:11 ` Frederic Weisbecker
2009-03-06 19:16 ` Cyrill Gorcunov
2009-03-06 19:18 ` Frederic Weisbecker
2009-03-06 19:25 ` Joerg Roedel
2009-03-06 19:38 ` Cyrill Gorcunov
2009-03-06 19:54 ` Joerg Roedel
2009-03-06 13:30 ` [PATCH 04/18] dma-debug: add allocator code Joerg Roedel
2009-03-06 13:30 ` [PATCH 05/18] dma-debug: add initialization code Joerg Roedel
2009-03-06 13:30 ` [PATCH 06/18] dma-debug: add kernel command line parameters Joerg Roedel
2009-03-06 13:30 ` [PATCH 07/18] dma-debug: add debugfs interface Joerg Roedel
2009-03-06 13:45 ` Frederic Weisbecker [this message]
2009-03-06 13:30 ` [PATCH 08/18] dma-debug: add core checking functions Joerg Roedel
2009-03-06 13:30 ` [PATCH 09/18] dma-debug: add checking for map/unmap_page/single Joerg Roedel
2009-03-19 1:39 ` FUJITA Tomonori
2009-03-20 8:46 ` Joerg Roedel
2009-03-06 13:30 ` [PATCH 10/18] dma-debug: add add checking for map/unmap_sg Joerg Roedel
2009-03-06 13:30 ` [PATCH 11/18] dma-debug: add checking for [alloc|free]_coherent Joerg Roedel
2009-03-06 13:30 ` [PATCH 12/18] dma-debug: add checks for sync_single_* Joerg Roedel
2009-03-06 13:30 ` [PATCH 13/18] dma-debug: add checks for sync_single_range_* Joerg Roedel
2009-03-06 13:30 ` [PATCH 14/18] dma-debug: add checks for sync_single_sg_* Joerg Roedel
2009-03-06 13:30 ` [PATCH 15/18] dma-debug: add function to dump dma mappings Joerg Roedel
2009-03-06 13:30 ` [PATCH 16/18] dma-debug: x86 architecture bindings Joerg Roedel
2009-03-06 13:30 ` [PATCH 17/18] dma-debug: Documentation update Joerg Roedel
2009-03-06 13:30 ` [PATCH 18/18] dma-debug: print stacktrace of mapping path on unmap error Joerg Roedel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090306134527.GD5988@nowhere \
--to=fweisbec@gmail.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joerg.roedel@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.