From: Simon Guo <wei.guo.simon@gmail.com>
To: Shaohua Li <shli@fb.com>
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
axboe@fb.com, Kernel-team@fb.com
Subject: Re: [PATCH 3/3] blk-throttle: don't parse cgroup path if trace isn't enabled
Date: Tue, 10 May 2016 13:46:13 +0800 [thread overview]
Message-ID: <20160510054613.GA12366@simonLocalRHEL7.x64> (raw)
In-Reply-To: <b395946862a1a963e6d74b70349322eceb5d42d4.1462838969.git.shli@fb.com>
Hi,
On Mon, May 09, 2016 at 05:22:15PM -0700, Shaohua Li wrote:
> if trace isn't enabled, parsing cgroup path just wastes cpu
>
> Signed-off-by: Shaohua Li <shli@fb.com>
> ---
> block/blk-throttle.c | 5 ++---
> include/linux/blktrace_api.h | 9 +++++++++
> 2 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/block/blk-throttle.c b/block/blk-throttle.c
> index 2149a1d..47a3e54 100644
> --- a/block/blk-throttle.c
> +++ b/block/blk-throttle.c
> @@ -211,15 +211,14 @@ static struct throtl_data *sq_to_td(struct throtl_service_queue *sq)
> *
> * The messages are prefixed with "throtl BLKG_NAME" if @sq belongs to a
> * throtl_grp; otherwise, just "throtl".
> - *
> - * TODO: this should be made a function and name formatting should happen
> - * after testing whether blktrace is enabled.
> */
> #define throtl_log(sq, fmt, args...) do { \
> struct throtl_grp *__tg = sq_to_tg((sq)); \
> struct throtl_data *__td = sq_to_td((sq)); \
> \
> (void)__td; \
> + if (likely(!blk_trace_note_message_enabled(__td->queue))) \
> + break; \
> if ((__tg)) { \
> char __pbuf[128]; \
> \
> diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
> index afc1343..0f3172b 100644
> --- a/include/linux/blktrace_api.h
> +++ b/include/linux/blktrace_api.h
> @@ -57,6 +57,14 @@ void __trace_note_message(struct blk_trace *, const char *fmt, ...);
> } while (0)
> #define BLK_TN_MAX_MSG 128
>
> +static inline bool blk_trace_note_message_enabled(struct request_queue *q)
> +{
> + struct blk_trace *bt = q->blk_trace;
> + if (likely(!bt))
> + return false;
> + return bt->act_mask & BLK_TC_NOTIFY;
> +}
Is there any reason to skip following condition?
if (unlikely(bt->trace_state != Blktrace_running &&
!blk_tracer_enabled))
Thanks,
- Simon
next prev parent reply other threads:[~2016-05-11 8:15 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-10 0:22 [PATCH 1/3] blktrace: delete garbage for message trace Shaohua Li
2016-05-10 0:22 ` [PATCH 2/3] blktrace: add missed mask name Shaohua Li
2016-05-10 15:45 ` Jeff Moyer
2016-05-10 0:22 ` [PATCH 3/3] blk-throttle: don't parse cgroup path if trace isn't enabled Shaohua Li
2016-05-10 5:46 ` Simon Guo [this message]
2016-05-11 16:54 ` Shaohua Li
2016-05-10 15:52 ` Jeff Moyer
2016-05-10 23:33 ` Steven Rostedt
2016-05-11 13:47 ` Jeff Moyer
2016-05-11 0:20 ` Shaohua Li
2016-05-11 13:41 ` Jeff Moyer
2016-05-11 16:49 ` Shaohua Li
2016-05-10 14:31 ` [PATCH 1/3] blktrace: delete garbage for message trace Jeff Moyer
2016-05-10 14:46 ` Jens Axboe
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=20160510054613.GA12366@simonLocalRHEL7.x64 \
--to=wei.guo.simon@gmail.com \
--cc=Kernel-team@fb.com \
--cc=axboe@fb.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=shli@fb.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.