lkml.org 
[lkml]   [2011]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/5] trace: Add a new readonly entry to report total buffer size
    Date
    The current file "buffer_size_kb" reports the size of per-cpu buffer and
    not the overall memory allocated which could be misleading. A new file
    "buffer_total_size_kb" adds up all the enabled CPU buffer sizes and
    reports it. This is only a readonly entry.

    Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
    ---
    kernel/trace/trace.c | 27 +++++++++++++++++++++++++++
    1 files changed, 27 insertions(+), 0 deletions(-)

    diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
    index e5df02c..ce57c55 100644
    --- a/kernel/trace/trace.c
    +++ b/kernel/trace/trace.c
    @@ -3569,6 +3569,24 @@ tracing_entries_write(struct file *filp, const char __user *ubuf,
    }

    static ssize_t
    +tracing_total_entries_read(struct file *filp, char __user *ubuf,
    + size_t cnt, loff_t *ppos)
    +{
    + struct trace_array *tr = filp->private_data;
    + char buf[64];
    + int r, cpu;
    + unsigned long size = 0;
    +
    + mutex_lock(&trace_types_lock);
    + for_each_tracing_cpu(cpu)
    + size += tr->entries >> 10;
    + mutex_unlock(&trace_types_lock);
    +
    + r = sprintf(buf, "%lu\n", size);
    + return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
    +}
    +
    +static ssize_t
    tracing_free_buffer_write(struct file *filp, const char __user *ubuf,
    size_t cnt, loff_t *ppos)
    {
    @@ -3739,6 +3757,12 @@ static const struct file_operations tracing_entries_fops = {
    .llseek = generic_file_llseek,
    };

    +static const struct file_operations tracing_total_entries_fops = {
    + .open = tracing_open_generic,
    + .read = tracing_total_entries_read,
    + .llseek = generic_file_llseek,
    +};
    +
    static const struct file_operations tracing_free_buffer_fops = {
    .write = tracing_free_buffer_write,
    .release = tracing_free_buffer_release,
    @@ -4450,6 +4474,9 @@ static __init int tracer_init_debugfs(void)
    trace_create_file("buffer_size_kb", 0644, d_tracer,
    &global_trace, &tracing_entries_fops);

    + trace_create_file("buffer_total_size_kb", 0444, d_tracer,
    + &global_trace, &tracing_total_entries_fops);
    +
    trace_create_file("free_buffer", 0644, d_tracer,
    &global_trace, &tracing_free_buffer_fops);

    --
    1.7.3.1


    \
     
     \ /
      Last update: 2011-07-27 01:03    [W:0.023 / U:148.792 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site