[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAMz4kuJHBSMq=X=XocDBy5_=5pXu4P9_ZOmYM3DJuGKFV_QU9A@mail.gmail.com>
Date: Mon, 28 Mar 2016 13:53:24 +0800
From: Baolin Wang <baolin.wang@...aro.org>
To: Jens Axboe <axboe@...com>
Cc: Ulf Hansson <ulf.hansson@...aro.org>,
Steven Rostedt <rostedt@...dmis.org>, mingo@...hat.com,
adrian.hunter@...el.com, yangbo.lu@...escale.com,
akpm@...ux-foundation.org, JBottomley@...n.com, lporzio@...ron.com,
jonathanh@...dia.com, Grant Grundler <grundler@...omium.org>,
fabf@...net.be, yunpeng.gao@...el.com, dan.j.williams@...el.com,
rabin.vincent@...s.com, chuanxiao.dong@...el.com,
shawn.lin@...k-chips.com,
Heiko Stübner <heiko@...ech.de>,
Douglas Anderson <dianders@...omium.org>, david@...tonic.nl,
Mark Brown <broonie@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Takahiro Akashi <takahiro.akashi@...aro.org>,
LKML <linux-kernel@...r.kernel.org>, linux-mmc@...r.kernel.org
Subject: Re: [PATCH v2] mmc: Provide tracepoints for request processing
On 25 March 2016 at 22:10, Jens Axboe <axboe@...com> wrote:
> On 03/25/2016 02:19 AM, Baolin Wang wrote:
>>
>> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
>> index fe207e5..d372a2d 100644
>> --- a/drivers/mmc/card/block.c
>> +++ b/drivers/mmc/card/block.c
>> @@ -46,6 +46,9 @@
>>
>> #include "queue.h"
>>
>> +#define CREATE_TRACE_POINTS
>> +#include <trace/events/mmc.h>
>> +
>> MODULE_ALIAS("mmc:block");
>> #ifdef MODULE_PARAM_PREFIX
>> #undef MODULE_PARAM_PREFIX
>> @@ -1709,6 +1712,7 @@ static u8 mmc_blk_prep_packed_list(struct mmc_queue
>> *mq, struct request *req)
>> if (phys_segments > max_phys_segs)
>> break;
>>
>> + trace_mmc_block_packed_req(next);
>> list_add_tail(&next->queuelist, &mqrq->packed->list);
>> cur = next;
>> reqs++;
>
>
> This looks like the only valid trace point in the block part.
OK.
>
>> @@ -1870,6 +1874,7 @@ static int mmc_blk_end_packed_req(struct
>> mmc_queue_req *mq_rq)
>> }
>> list_del_init(&prq->queuelist);
>> blk_end_request(prq, 0, blk_rq_bytes(prq));
>> + trace_mmc_block_req_done(prq);
>
>
> We just logged a complete event through blk_end_request() here.
I'll remove this repeated tracepoint.
>>
>> @@ -1985,6 +1990,7 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq,
>> struct request *rqc)
>> } else {
>> ret = blk_end_request(req, 0,
>> brq->data.bytes_xfered);
>> + trace_mmc_block_req_done(req);
>> }
>
>
> Ditto
Will remove it too.
>
>> diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
>> index 6f4323c..d0388cf 100644
>> --- a/drivers/mmc/card/queue.c
>> +++ b/drivers/mmc/card/queue.c
>> @@ -16,6 +16,7 @@
>> #include <linux/kthread.h>
>> #include <linux/scatterlist.h>
>> #include <linux/dma-mapping.h>
>> +#include <trace/events/mmc.h>
>>
>> #include <linux/mmc/card.h>
>> #include <linux/mmc/host.h>
>> @@ -64,6 +65,9 @@ static int mmc_queue_thread(void *d)
>> mq->mqrq_cur->req = req;
>> spin_unlock_irq(q->queue_lock);
>>
>> + if (req)
>> + trace_mmc_queue_fetch(req);
>
>
> Issue event was just logged here, if req != NULL. So also redundant.
Make sense.
>
> Basically only your core mmc events would potentially have merit, the rest
> are all dupes. So nak.
I'll remove the redundant tracepoints. Thanks for your comments.
>
> --
> Jens Axboe
>
--
Baolin.wang
Best Regards
Powered by blists - more mailing lists