From: Jens Axboe <axboe@kernel.dk>
To: Ming Lei <tom.leiming@gmail.com>
Cc: Alexander Gordeev <agordeev@redhat.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Kent Overstreet <kmo@daterainc.com>, Shaohua Li <shli@kernel.org>,
Nicholas Bellinger <nab@linux-iscsi.org>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH RFC 0/2] percpu_ida: Take into account CPU topology when stealing tags
Date: Tue, 22 Apr 2014 19:25:57 -0600 [thread overview]
Message-ID: <535716A5.6050108@kernel.dk> (raw)
In-Reply-To: <CACVXFVMXh5ZP+ZsO2fV2mdKJrJF9AHg58v5KWmt_ZbEWvszsLw@mail.gmail.com>
On 2014-04-22 18:53, Ming Lei wrote:
> Hi Jens,
>
> On Tue, Apr 22, 2014 at 11:57 PM, Jens Axboe <axboe@kernel.dk> wrote:
>> On 04/22/2014 08:03 AM, Jens Axboe wrote:
>>> On 2014-04-22 01:10, Alexander Gordeev wrote:
>>>> On Wed, Mar 26, 2014 at 02:34:22PM +0100, Alexander Gordeev wrote:
>>>>> But other systems (more dense?) showed increased cache-hit rate
>>>>> up to 20%, i.e. this one:
>>>>
>>>> Hello Gentlemen,
>>>>
>>>> Any feedback on this?
>>>
>>> Sorry for dropping the ball on this. Improvements wrt when to steal, how
>>> much, and from whom are sorely needed in percpu_ida. I'll do a bench
>>> with this on a system that currently falls apart with it.
>>
>> Ran some quick numbers with three kernels:
>>
>> stock 3.15-rc2
>> limit 3.15-rc2 + steal limit patch (attached)
>
> I am thinking/working on this sort of improving too, but my
> idea is to compute tags->nr_max_cache by below:
>
> nr_tags / hctx->max_nr_ctx
>
> hctx->max_nr_ctx means the max sw queues mapped to the
> hw queue, which need to be introduced in the approach, actually,
> the value should represent the CPU topology info.
>
> It is a bit complicated to compute hctx->max_nr_ctx because
> we need to take account into CPU hotplug and probable
> user-defined mapping callback.
We can always just update the caching info, that's not a big problem. We
update the mappings on those events anyway.
> If user-defined mapping callback needn't to be considered, the
> hctx->max_nr_ctx can be figured out before mapping sw
> queue in blk_mq_init_queue() by supposing each CPU is
> online first, once it is done, the map for offline CPU is cleared,
> then start to call blk_mq_map_swqueue().
I don't see how a user defined mapping would change things a whole lot.
It's just another point of updating the cache. Besides, user defined
mappings will be mostly (only?) for things like multiqueue, where the
caching info would likely remain static over a reconfigure.
> In my null_blk test on a quad core SMP VM:
>
> - 4 hw queue
> - timer mode
>
> With the above approach, tag allocation from local CPU can be
> improved from:
>
> 5% -> 50% for boot CPU
> 30% -> 90% for non-boot CPU.
>
> If no one objects the idea, I'd like to post a patch for review.
Sent it out, that can't hurt. I'll take a look at it, and give it a test
spin as well.
--
Jens Axboe
next prev parent reply other threads:[~2014-04-23 1:26 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-26 13:34 [PATCH RFC 0/2] percpu_ida: Take into account CPU topology when stealing tags Alexander Gordeev
2014-03-26 13:34 ` [PATCH RFC 1/2] sched: Introduce topology level masks and for_each_tlm() macro Alexander Gordeev
2014-03-26 13:34 ` [PATCH RFC 2/2] percpu_ida: Use for_each_tlm() macro for CPU lookup in steal_tags() Alexander Gordeev
2014-04-22 7:10 ` [PATCH RFC 0/2] percpu_ida: Take into account CPU topology when stealing tags Alexander Gordeev
2014-04-22 14:03 ` Jens Axboe
2014-04-22 15:57 ` Jens Axboe
2014-04-23 0:53 ` Ming Lei
2014-04-23 1:25 ` Jens Axboe [this message]
2014-04-25 9:10 ` Ming Lei
2014-04-25 21:23 ` Jens Axboe
2014-04-26 0:01 ` Ming Lei
2014-04-26 2:03 ` Jens Axboe
2014-04-29 11:35 ` Ming Lei
2014-04-29 21:13 ` Jens Axboe
2014-04-30 9:40 ` Ming Lei
2014-05-01 22:47 ` Kent Overstreet
2014-05-02 2:19 ` Jens Axboe
2014-05-02 2:38 ` Kent Overstreet
2014-05-02 2:44 ` Jens Axboe
2014-05-02 5:05 ` Christoph Hellwig
2014-05-02 16:41 ` Jens Axboe
2014-05-02 16:43 ` Christoph Hellwig
2014-05-02 16:56 ` Jens Axboe
2014-04-22 11:56 ` Peter Zijlstra
2014-05-01 21:24 ` Alexander Gordeev
2014-05-01 22:04 ` Alexander Gordeev
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=535716A5.6050108@kernel.dk \
--to=axboe@kernel.dk \
--cc=agordeev@redhat.com \
--cc=kmo@daterainc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nab@linux-iscsi.org \
--cc=peterz@infradead.org \
--cc=shli@kernel.org \
--cc=tom.leiming@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox