From: Andrew Morton <akpm@linux-foundation.org>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Jesper Dangaard Brouer <brouer@redhat.com>,
rostedt@goodmis.org, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v2 1/2] mm/slub: optimize alloc/free fastpath by removing preemption on/off
Date: Thu, 15 Jan 2015 17:16:34 -0800 [thread overview]
Message-ID: <20150115171634.685237a4.akpm@linux-foundation.org> (raw)
In-Reply-To: <1421307633-24045-1-git-send-email-iamjoonsoo.kim@lge.com>
On Thu, 15 Jan 2015 16:40:32 +0900 Joonsoo Kim <iamjoonsoo.kim@lge.com> wrote:
> We had to insert a preempt enable/disable in the fastpath a while ago
> in order to guarantee that tid and kmem_cache_cpu are retrieved on the
> same cpu. It is the problem only for CONFIG_PREEMPT in which scheduler
> can move the process to other cpu during retrieving data.
>
> Now, I reach the solution to remove preempt enable/disable in the fastpath.
> If tid is matched with kmem_cache_cpu's tid after tid and kmem_cache_cpu
> are retrieved by separate this_cpu operation, it means that they are
> retrieved on the same cpu. If not matched, we just have to retry it.
>
> With this guarantee, preemption enable/disable isn't need at all even if
> CONFIG_PREEMPT, so this patch removes it.
>
> I saw roughly 5% win in a fast-path loop over kmem_cache_alloc/free
> in CONFIG_PREEMPT. (14.821 ns -> 14.049 ns)
I'm surprised. preempt_disable/enable are pretty fast. I wonder why
this makes a measurable difference. Perhaps preempt_enable()'s call to
preempt_schedule() added pain?
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Jesper Dangaard Brouer <brouer@redhat.com>,
rostedt@goodmis.org, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v2 1/2] mm/slub: optimize alloc/free fastpath by removing preemption on/off
Date: Thu, 15 Jan 2015 17:16:34 -0800 [thread overview]
Message-ID: <20150115171634.685237a4.akpm@linux-foundation.org> (raw)
In-Reply-To: <1421307633-24045-1-git-send-email-iamjoonsoo.kim@lge.com>
On Thu, 15 Jan 2015 16:40:32 +0900 Joonsoo Kim <iamjoonsoo.kim@lge.com> wrote:
> We had to insert a preempt enable/disable in the fastpath a while ago
> in order to guarantee that tid and kmem_cache_cpu are retrieved on the
> same cpu. It is the problem only for CONFIG_PREEMPT in which scheduler
> can move the process to other cpu during retrieving data.
>
> Now, I reach the solution to remove preempt enable/disable in the fastpath.
> If tid is matched with kmem_cache_cpu's tid after tid and kmem_cache_cpu
> are retrieved by separate this_cpu operation, it means that they are
> retrieved on the same cpu. If not matched, we just have to retry it.
>
> With this guarantee, preemption enable/disable isn't need at all even if
> CONFIG_PREEMPT, so this patch removes it.
>
> I saw roughly 5% win in a fast-path loop over kmem_cache_alloc/free
> in CONFIG_PREEMPT. (14.821 ns -> 14.049 ns)
I'm surprised. preempt_disable/enable are pretty fast. I wonder why
this makes a measurable difference. Perhaps preempt_enable()'s call to
preempt_schedule() added pain?
next prev parent reply other threads:[~2015-01-16 1:16 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-15 7:40 [PATCH v2 1/2] mm/slub: optimize alloc/free fastpath by removing preemption on/off Joonsoo Kim
2015-01-15 7:40 ` Joonsoo Kim
2015-01-15 7:40 ` [PATCH v2 2/2] mm: don't use compound_head() in virt_to_head_page() Joonsoo Kim
2015-01-15 7:40 ` Joonsoo Kim
2015-01-16 1:16 ` Andrew Morton
2015-01-16 1:16 ` Andrew Morton
2015-01-16 3:30 ` Christoph Lameter
2015-01-16 3:30 ` Christoph Lameter
2015-01-19 4:20 ` 答复: " Zhang, Yanfei
2015-01-19 6:16 ` Joonsoo Kim
2015-01-19 6:16 ` Joonsoo Kim
2015-01-15 8:10 ` [PATCH v2 1/2] mm/slub: optimize alloc/free fastpath by removing preemption on/off Jesper Dangaard Brouer
2015-01-15 8:10 ` Jesper Dangaard Brouer
2015-01-16 1:16 ` Andrew Morton [this message]
2015-01-16 1:16 ` Andrew Morton
2015-01-16 1:30 ` Steven Rostedt
2015-01-16 1:30 ` Steven Rostedt
2015-01-16 3:27 ` Christoph Lameter
2015-01-16 3:27 ` Christoph Lameter
2015-01-16 3:51 ` Steven Rostedt
2015-01-16 3:51 ` Steven Rostedt
2015-01-16 3:57 ` Christoph Lameter
2015-01-16 3:57 ` Christoph Lameter
2015-01-16 4:07 ` Steven Rostedt
2015-01-16 4:07 ` Steven Rostedt
2015-01-16 13:40 ` Eric Dumazet
2015-01-16 13:40 ` Eric Dumazet
2015-01-16 16:37 ` Steven Rostedt
2015-01-16 16:37 ` Steven Rostedt
2015-01-16 4:04 ` Steven Rostedt
2015-01-16 4:04 ` Steven Rostedt
2015-01-16 3:28 ` Christoph Lameter
2015-01-16 3:28 ` Christoph Lameter
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=20150115171634.685237a4.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=brouer@redhat.com \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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.