linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Vitaly Wool <vitalywool@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Oleksiy.Avramchenko@sony.com, Linux-MM <linux-mm@kvack.org>,
	Dan Streetman <ddstreet@ieee.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] z3fold: use per-cpu unbuddied lists
Date: Thu, 3 Aug 2017 01:49:38 +0200	[thread overview]
Message-ID: <CAMJBoFNtACzBwBxtQf4OqiVs8drjq5_cte2sF3CVn=izwuqcag@mail.gmail.com> (raw)
In-Reply-To: <20170802160716.f5d1072873799a3a420f6538@linux-foundation.org>

[-- Attachment #1: Type: text/plain, Size: 1834 bytes --]

On Aug 3, 2017 01:07, "Andrew Morton" <akpm@linux-foundation.org> wrote:

On Wed, 2 Aug 2017 12:25:05 +0200 Vitaly Wool <vitalywool@gmail.com> wrote:

> z3fold is operating on unbuddied lists in a simple manner: in fact,
> it only takes the first entry off the list on a hot path. So if the
> z3fold pool is big enough and balanced well enough, considering
> only the lists local to the current CPU won't be an issue in any
> way, while random I/O performance will go up.

Has the performance benefit been measured?  It's a large patch.


Yes, mostly by running fio in randrw mode. We can see the performance more
than doubling on a 8-core ARM64 system.


> This patch also introduces two worker threads which: one for async
> in-page object layout optimization and one for releasing freed
> pages.

Why?  What are the runtime effects of this change?  Does this turn
currently-synchronous operations into now-async operations?  If so,
what are the implications of this if, say, the workqueue doesn't get
serviced for a while?


The biggest benefit is that it usually ends up with one call to
compact_page instead of two. Also, we use z3fold as a zram backend and zram
likes to free pages on a critical path so removing compaction from this
critical path is definitely a nice thing.

If compaction workqueue doesn't get serviced for a significant while, the
ratio will go down a bit, no bad things will happen. And z3fold_alloc tries
to take new pages from the stale list first, so even if release workqueue
is not called, the pages will be reused by z3fold_alloc.


etc.  Sorry, but I'm not seeing anywhere near enough information and
testing results to justify merging such a large and intrusive patch.

I understand. Would it help if I add fio results and some explanations from
this reply to the commit message?.

Thanks,
  Vitaly

[-- Attachment #2: Type: text/html, Size: 3058 bytes --]

      reply	other threads:[~2017-08-02 23:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-02 10:25 Vitaly Wool
2017-08-02 13:50 ` kbuild test robot
2017-08-02 23:07 ` Andrew Morton
2017-08-02 23:49   ` Vitaly Wool [this message]

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='CAMJBoFNtACzBwBxtQf4OqiVs8drjq5_cte2sF3CVn=izwuqcag@mail.gmail.com' \
    --to=vitalywool@gmail.com \
    --cc=Oleksiy.Avramchenko@sony.com \
    --cc=akpm@linux-foundation.org \
    --cc=ddstreet@ieee.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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