[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56F546D5.5090107@fb.com>
Date: Fri, 25 Mar 2016 08:10:29 -0600
From: Jens Axboe <axboe@...com>
To: Baolin Wang <baolin.wang@...aro.org>, <ulf.hansson@...aro.org>,
<rostedt@...dmis.org>, <mingo@...hat.com>
CC: <adrian.hunter@...el.com>, <yangbo.lu@...escale.com>,
<akpm@...ux-foundation.org>, <JBottomley@...n.com>,
<lporzio@...ron.com>, <jonathanh@...dia.com>,
<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@...ech.de>, <dianders@...omium.org>, <david@...tonic.nl>,
<broonie@...nel.org>, <linus.walleij@...aro.org>,
<takahiro.akashi@...aro.org>, <linux-kernel@...r.kernel.org>,
<linux-mmc@...r.kernel.org>
Subject: Re: [PATCH v2] mmc: Provide tracepoints for request processing
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.
> @@ -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.
> @@ -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
> 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.
Basically only your core mmc events would potentially have merit, the
rest are all dupes. So nak.
--
Jens Axboe
Powered by blists - more mailing lists