All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesper Dangaard Brouer <brouer@redhat.com>
To: Christoph Lameter <cl@linux.com>
Cc: akpm@linuxfoundation.org, rostedt@goodmis.org,
	linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-mm@kvack.org, penberg@kernel.org, iamjoonsoo.kim@lge.com,
	brouer@redhat.com
Subject: Re: [PATCH 0/7] slub: Fastpath optimization (especially for RT) V1
Date: Thu, 11 Dec 2014 14:35:18 +0100	[thread overview]
Message-ID: <20141211143518.02c781ee@redhat.com> (raw)
In-Reply-To: <20141210163017.092096069@linux.com>

On Wed, 10 Dec 2014 10:30:17 -0600
Christoph Lameter <cl@linux.com> wrote:

[...]
> 
> Slab Benchmarks on a kernel with CONFIG_PREEMPT show an improvement of
> 20%-50% of fastpath latency:
> 
> Before:
> 
> Single thread testing
[...]
> 2. Kmalloc: alloc/free test
[...]
> 10000 times kmalloc(256)/kfree -> 116 cycles
[...]
> 
> 
> After:
> 
> Single thread testing
[...]
> 2. Kmalloc: alloc/free test
[...]
> 10000 times kmalloc(256)/kfree -> 60 cycles
[...]

It looks like an impressive saving 116 -> 60 cycles.  I just don't see
the same kind of improvements with my similar tests[1][2].

My test[1] is just a fast-path loop over kmem_cache_alloc+free on
256bytes objects. (Results after explicitly inlining new func
is_pointer_to_page())

 baseline: 47 cycles(tsc) 19.032 ns
 patchset: 45 cycles(tsc) 18.135 ns

I do see the improvement, but it is not as high as I would have expected.

(CPU E5-2695)

[1] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/lib/time_bench_kmem_cache1.c
[2] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/mm/qmempool_bench.c

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Sr. Network Kernel Developer at Red Hat
  Author of http://www.iptv-analyzer.org
  LinkedIn: http://www.linkedin.com/in/brouer

--
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: Jesper Dangaard Brouer <brouer@redhat.com>
To: Christoph Lameter <cl@linux.com>
Cc: akpm@linuxfoundation.org, rostedt@goodmis.org,
	linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-mm@kvack.org, penberg@kernel.org, iamjoonsoo.kim@lge.com,
	brouer@redhat.com
Subject: Re: [PATCH 0/7] slub: Fastpath optimization (especially for RT) V1
Date: Thu, 11 Dec 2014 14:35:18 +0100	[thread overview]
Message-ID: <20141211143518.02c781ee@redhat.com> (raw)
In-Reply-To: <20141210163017.092096069@linux.com>

On Wed, 10 Dec 2014 10:30:17 -0600
Christoph Lameter <cl@linux.com> wrote:

[...]
> 
> Slab Benchmarks on a kernel with CONFIG_PREEMPT show an improvement of
> 20%-50% of fastpath latency:
> 
> Before:
> 
> Single thread testing
[...]
> 2. Kmalloc: alloc/free test
[...]
> 10000 times kmalloc(256)/kfree -> 116 cycles
[...]
> 
> 
> After:
> 
> Single thread testing
[...]
> 2. Kmalloc: alloc/free test
[...]
> 10000 times kmalloc(256)/kfree -> 60 cycles
[...]

It looks like an impressive saving 116 -> 60 cycles.  I just don't see
the same kind of improvements with my similar tests[1][2].

My test[1] is just a fast-path loop over kmem_cache_alloc+free on
256bytes objects. (Results after explicitly inlining new func
is_pointer_to_page())

 baseline: 47 cycles(tsc) 19.032 ns
 patchset: 45 cycles(tsc) 18.135 ns

I do see the improvement, but it is not as high as I would have expected.

(CPU E5-2695)

[1] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/lib/time_bench_kmem_cache1.c
[2] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/mm/qmempool_bench.c

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Sr. Network Kernel Developer at Red Hat
  Author of http://www.iptv-analyzer.org
  LinkedIn: http://www.linkedin.com/in/brouer

  parent reply	other threads:[~2014-12-11 13:35 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-10 16:30 [PATCH 0/7] slub: Fastpath optimization (especially for RT) V1 Christoph Lameter
2014-12-10 16:30 ` Christoph Lameter
2014-12-10 16:30 ` [PATCH 1/7] slub: Remove __slab_alloc code duplication Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-10 16:39   ` Pekka Enberg
2014-12-10 16:39     ` Pekka Enberg
2014-12-10 16:30 ` [PATCH 2/7] slub: Use page-mapping to store address of page frame like done in SLAB Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-10 16:45   ` Pekka Enberg
2014-12-10 16:45     ` Pekka Enberg
2014-12-10 16:30 ` [PATCH 3/7] slub: Do not use c->page on free Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-10 16:54   ` Pekka Enberg
2014-12-10 16:54     ` Pekka Enberg
2014-12-10 17:08     ` Christoph Lameter
2014-12-10 17:08       ` Christoph Lameter
2014-12-10 17:32       ` Pekka Enberg
2014-12-10 17:32         ` Pekka Enberg
2014-12-10 17:37         ` Christoph Lameter
2014-12-10 17:37           ` Christoph Lameter
2014-12-11 13:19           ` Jesper Dangaard Brouer
2014-12-11 13:19             ` Jesper Dangaard Brouer
2014-12-11 15:01             ` Christoph Lameter
2014-12-11 15:01               ` Christoph Lameter
2014-12-15  8:03   ` Joonsoo Kim
2014-12-15  8:03     ` Joonsoo Kim
2014-12-15 14:16     ` Christoph Lameter
2014-12-15 14:16       ` Christoph Lameter
2014-12-16  2:42       ` Joonsoo Kim
2014-12-16  2:42         ` Joonsoo Kim
2014-12-16  7:54         ` Andrey Ryabinin
2014-12-16  7:54           ` Andrey Ryabinin
2014-12-16  8:25           ` Joonsoo Kim
2014-12-16  8:25             ` Joonsoo Kim
2014-12-16 14:53             ` Christoph Lameter
2014-12-16 14:53               ` Christoph Lameter
2014-12-16 15:15               ` Jesper Dangaard Brouer
2014-12-16 15:15                 ` Jesper Dangaard Brouer
2014-12-16 15:34                 ` Andrey Ryabinin
2014-12-16 15:34                   ` Andrey Ryabinin
2014-12-16 15:48                 ` Christoph Lameter
2014-12-16 15:48                   ` Christoph Lameter
2014-12-17  7:15                   ` Joonsoo Kim
2014-12-17  7:15                     ` Joonsoo Kim
2014-12-16 15:33               ` Andrey Ryabinin
2014-12-16 15:33                 ` Andrey Ryabinin
2014-12-16 14:05           ` Jesper Dangaard Brouer
2014-12-16 14:05             ` Jesper Dangaard Brouer
2014-12-10 16:30 ` [PATCH 4/7] slub: Avoid using the page struct address in allocation fastpath Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-10 16:56   ` Pekka Enberg
2014-12-10 16:56     ` Pekka Enberg
2014-12-10 16:30 ` [PATCH 5/7] slub: Use end_token instead of NULL to terminate freelists Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-10 16:59   ` Pekka Enberg
2014-12-10 16:59     ` Pekka Enberg
2014-12-10 16:30 ` [PATCH 6/7] slub: Drop ->page field from kmem_cache_cpu Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-10 17:29   ` Pekka Enberg
2014-12-10 17:29     ` Pekka Enberg
2014-12-10 16:30 ` [PATCH 7/7] slub: Remove preemption disable/enable from fastpath Christoph Lameter
2014-12-10 16:30   ` Christoph Lameter
2014-12-11 13:35 ` Jesper Dangaard Brouer [this message]
2014-12-11 13:35   ` [PATCH 0/7] slub: Fastpath optimization (especially for RT) V1 Jesper Dangaard Brouer
2014-12-11 15:03   ` Christoph Lameter
2014-12-11 15:03     ` Christoph Lameter
2014-12-11 16:50     ` Jesper Dangaard Brouer
2014-12-11 16:50       ` Jesper Dangaard Brouer
2014-12-11 17:18       ` Christoph Lameter
2014-12-11 17:18         ` Christoph Lameter
2014-12-11 18:11         ` Jesper Dangaard Brouer
2014-12-11 18:11           ` Jesper Dangaard Brouer
2014-12-11 17:37 ` Jesper Dangaard Brouer
2014-12-11 17:37   ` Jesper Dangaard Brouer
2014-12-12 10:39   ` Jesper Dangaard Brouer
2014-12-12 10:39     ` Jesper Dangaard Brouer
2014-12-12 18:31     ` Christoph Lameter
2014-12-12 18:31       ` Christoph Lameter
2014-12-15  7:59 ` Joonsoo Kim
2014-12-15  7:59   ` Joonsoo Kim
2014-12-17  7:13   ` Joonsoo Kim
2014-12-17  7:13     ` Joonsoo Kim
2014-12-17 12:08     ` Jesper Dangaard Brouer
2014-12-17 12:08       ` Jesper Dangaard Brouer
2014-12-18 14:34       ` Joonsoo Kim
2014-12-18 14:34         ` Joonsoo Kim
2014-12-17 15:36     ` Christoph Lameter
2014-12-17 15:36       ` Christoph Lameter
2014-12-18 14:38       ` Joonsoo Kim
2014-12-18 14:38         ` Joonsoo Kim
2014-12-18 14:57         ` Christoph Lameter
2014-12-18 14:57           ` Christoph Lameter
2014-12-18 15:08           ` Joonsoo Kim
2014-12-18 15:08             ` Joonsoo Kim
2014-12-17 16:10     ` Christoph Lameter
2014-12-17 16:10       ` Christoph Lameter
2014-12-17 19:44       ` Christoph Lameter
2014-12-17 19:44         ` Christoph Lameter
2014-12-18 14:41       ` Joonsoo Kim
2014-12-18 14:41         ` Joonsoo Kim

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=20141211143518.02c781ee@redhat.com \
    --to=brouer@redhat.com \
    --cc=akpm@linuxfoundation.org \
    --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=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.