From: Ingo Molnar <mingo@kernel.org>
To: Waiman Long <Waiman.Long@hpe.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org,
Peter Zijlstra <peterz@infradead.org>,
Andi Kleen <andi@firstfloor.org>,
Scott J Norton <scott.norton@hp.com>,
Douglas Hatch <doug.hatch@hp.com>
Subject: Re: [PATCH v2 3/3] vfs: Enable list batching for the superblock's inode list
Date: Sat, 30 Jan 2016 09:35:57 +0100 [thread overview]
Message-ID: <20160130083557.GA31749@gmail.com> (raw)
In-Reply-To: <1454095846-19628-4-git-send-email-Waiman.Long@hpe.com>
* Waiman Long <Waiman.Long@hpe.com> wrote:
> The inode_sb_list_add() and inode_sb_list_del() functions in the vfs
> layer just perform list addition and deletion under lock. So they can
> use the new list batching facility to speed up the list operations
> when many CPUs are trying to do it simultaneously.
>
> In particular, the inode_sb_list_del() function can be a performance
> bottleneck when large applications with many threads and associated
> inodes exit. With an exit microbenchmark that creates a large number
> of threads, attachs many inodes to them and then exits. The runtimes
> of that microbenchmark with 1000 threads before and after the patch
> on a 4-socket Intel E7-4820 v3 system (48 cores, 96 threads) were
> as follows:
>
> Kernel Elapsed Time System Time
> ------ ------------ -----------
> Vanilla 4.4 65.29s 82m14s
> Patched 4.4 45.69s 49m44s
>
> The elapsed time and the reported system time were reduced by 30%
> and 40% respectively.
That's pretty impressive!
I'm wondering, why are inode_sb_list_add()/del() even called for a presumably
reasonably well cached benchmark running on a system with enough RAM? Are these
perhaps thousands of temporary files, already deleted, and released when all the
file descriptors are closed as part of sys_exit()?
If that's the case then I suspect an even bigger win would be not just to batch
the (sb-)global list fiddling, but to potentially turn the sb list into a
percpu_alloc() managed set of per CPU lists? It's a bigger change, but it could
speed up a lot of other temporary file intensive usecases as well, not just
batched delete.
Thanks,
Ingo
next prev parent reply other threads:[~2016-01-30 8:36 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-29 19:30 [PATCH v2 0/3] lib/list_batch: A simple list insertion/deletion batching facility Waiman Long
2016-01-29 19:30 ` [PATCH v2 1/3] " Waiman Long
2016-02-01 0:47 ` Dave Chinner
2016-02-03 23:11 ` Waiman Long
2016-02-06 23:57 ` Dave Chinner
2016-02-17 1:37 ` Waiman Long
2016-01-29 19:30 ` [PATCH v2 2/3] lib/list_batch, x86: Enable list insertion/deletion batching for x86 Waiman Long
2016-01-29 19:30 ` [PATCH v2 3/3] vfs: Enable list batching for the superblock's inode list Waiman Long
2016-01-30 8:35 ` Ingo Molnar [this message]
2016-02-01 17:45 ` Andi Kleen
2016-02-01 22:03 ` Waiman Long
2016-02-03 22:59 ` Waiman Long
2016-02-06 23:51 ` Dave Chinner
2016-02-01 21:44 ` Waiman Long
2016-02-01 0:04 ` Dave Chinner
2016-02-03 23:01 ` Waiman Long
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=20160130083557.GA31749@gmail.com \
--to=mingo@kernel.org \
--cc=Waiman.Long@hpe.com \
--cc=andi@firstfloor.org \
--cc=doug.hatch@hp.com \
--cc=hpa@zytor.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=scott.norton@hp.com \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.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 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.