lkml.org 
[lkml]   [2006]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v3] ifdef blktrace debugging fields
    On Tue, Aug 01, 2006 at 10:12:57PM +0200, Jens Axboe wrote:
    > > +#ifdef CONFIG_BLK_DEV_IO_TRACE
    > > if (q->blk_trace)
    > > blk_trace_shutdown(q);
    > > -
    > > +#endif
    > > kmem_cache_free(requestq_cachep, q);
    > > }
    >
    > That can be made ifdef less, if you unconditionally call
    > blk_trace_shutdown() and just make that one do:
    >
    > if (q->blk_trace) {
    > ...
    > }
    >
    > since that'll then do the right always. Please make that change, then
    > I'm fine with the patch.

    OK here goes version 3.

    [PATCH] ifdef blktrace debugging fields

    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    ---

    block/blktrace.c | 6 ++++--
    block/ll_rw_blk.c | 3 +--
    include/linux/blkdev.h | 4 ++--
    include/linux/sched.h | 3 ++-
    kernel/fork.c | 2 ++
    5 files changed, 11 insertions(+), 7 deletions(-)

    --- a/block/blktrace.c
    +++ b/block/blktrace.c
    @@ -450,8 +450,10 @@ int blk_trace_ioctl(struct block_device
    **/
    void blk_trace_shutdown(request_queue_t *q)
    {
    - blk_trace_startstop(q, 0);
    - blk_trace_remove(q);
    + if (q->blk_trace) {
    + blk_trace_startstop(q, 0);
    + blk_trace_remove(q);
    + }
    }

    /*
    --- a/block/ll_rw_blk.c
    +++ b/block/ll_rw_blk.c
    @@ -1780,8 +1780,7 @@ static void blk_release_queue(struct kob
    if (q->queue_tags)
    __blk_queue_free_tags(q);

    - if (q->blk_trace)
    - blk_trace_shutdown(q);
    + blk_trace_shutdown(q);

    kmem_cache_free(requestq_cachep, q);
    }
    --- a/include/linux/blkdev.h
    +++ b/include/linux/blkdev.h
    @@ -417,9 +417,9 @@ struct request_queue
    unsigned int sg_timeout;
    unsigned int sg_reserved_size;
    int node;
    -
    +#ifdef CONFIG_BLK_DEV_IO_TRACE
    struct blk_trace *blk_trace;
    -
    +#endif
    /*
    * reserved for flush operations
    */
    --- a/include/linux/sched.h
    +++ b/include/linux/sched.h
    @@ -784,8 +784,9 @@ #endif
    struct prio_array *array;

    unsigned short ioprio;
    +#ifdef CONFIG_BLK_DEV_IO_TRACE
    unsigned int btrace_seq;
    -
    +#endif
    unsigned long sleep_avg;
    unsigned long long timestamp, last_ran;
    unsigned long long sched_time; /* sched_clock time spent running */
    --- a/kernel/fork.c
    +++ b/kernel/fork.c
    @@ -177,7 +177,9 @@ static struct task_struct *dup_task_stru
    /* One for us, one for whoever does the "release_task()" (usually parent) */
    atomic_set(&tsk->usage,2);
    atomic_set(&tsk->fs_excl, 0);
    +#ifdef CONFIG_BLK_DEV_IO_TRACE
    tsk->btrace_seq = 0;
    +#endif
    tsk->splice_pipe = NULL;
    return tsk;
    }
    -
    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/

    \
     
     \ /
      Last update: 2006-08-02 00:53    [W:0.023 / U:8.164 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site