From: Minchan Kim <minchan.kim@gmail.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: cl@linux-foundation.org, "linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: [RFC MM] speculative page fault
Date: Sat, 14 Nov 2009 01:20:45 +0900 [thread overview]
Message-ID: <28c262360911130820r34d2d2d2jf2ca754447eb9f5@mail.gmail.com> (raw)
In-Reply-To: <20091113163544.d92561c7.kamezawa.hiroyu@jp.fujitsu.com>
On Fri, Nov 13, 2009 at 4:35 PM, KAMEZAWA Hiroyuki
<kamezawa.hiroyu@jp.fujitsu.com> wrote:
> This is just a toy patch inspied by on Christoph's mmap_sem works.
> Only for my hobby, now.
>
> Not well tested. So please look into only if you have time.
>
> My multi-thread page fault test program shows some improvement.
> But I doubt my test ;) Do you have recommended benchmarks for parallel page-faults ?
>
> Counting # of page faults per 60sec. See page-faults. bigger is better.
> Test on x86-64 8cpus.
>
> [Before]
> 474441.541914 task-clock-msecs # 7.906 CPUs
> 10318 context-switches # 0.000 M/sec
> 10 CPU-migrations # 0.000 M/sec
> 15816787 page-faults # 0.033 M/sec
> 1485219138381 cycles # 3130.458 M/sec (scaled from 69.99%)
> 295669524399 instructions # 0.199 IPC (scaled from 79.98%)
> 57658291915 branches # 121.529 M/sec (scaled from 79.98%)
> 798567455 branch-misses # 1.385 % (scaled from 79.98%)
> 2458780947 cache-references # 5.182 M/sec (scaled from 20.02%)
> 844605496 cache-misses # 1.780 M/sec (scaled from 20.02%)
>
> [After]
> 471166.582784 task-clock-msecs # 7.852 CPUs
> 10378 context-switches # 0.000 M/sec
> 10 CPU-migrations # 0.000 M/sec
> 37950235 page-faults # 0.081 M/sec
> 1463000664470 cycles # 3105.060 M/sec (scaled from 70.32%)
> 346531590054 instructions # 0.237 IPC (scaled from 80.20%)
> 63309364882 branches # 134.367 M/sec (scaled from 80.19%)
> 448256258 branch-misses # 0.708 % (scaled from 80.20%)
> 2601112130 cache-references # 5.521 M/sec (scaled from 19.81%)
> 872978619 cache-misses # 1.853 M/sec (scaled from 19.80%)
>
Looks amazing. page fault is the two times faster than old.
What's your test program?
I think per thread vma cache is effective as well as speculative lock.
> Main concept of this patch is
> - Do page fault without taking mm->mmap_sem until some modification in vma happens.
> - All page fault via get_user_pages() should have to take mmap_sem.
> - find_vma()/rb_tree must be walked under proper locks. For avoiding that, use
> per-thread cache.
>
> It seems I don't have enough time to update this, more.
> So, I dump patches here just for share.
I think this is good embedded device as well as big thread environment
like google.
Some embedded device has big threads. That's because design issue of
migration from RTOS
to Linux. Thread model makes system design easier since threads share
address space like RTOS.
I know it's bad design. but At a loss, it's real problem.
I support this idea.
Thanks, Kame.
> Thanks,
> -Kame
>
> --
> 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>
>
--
Kind regards,
Minchan Kim
--
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>
next prev parent reply other threads:[~2009-11-13 16:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-13 7:35 KAMEZAWA Hiroyuki
2009-11-13 7:37 ` [RFC MM 1/4] mm accessor (updated) KAMEZAWA Hiroyuki
2009-11-13 7:38 ` [RFC MM 2/4] refcnt for vm_area_struct KAMEZAWA Hiroyuki
2009-11-13 7:40 ` [RFC MM 3/4] add mm version number KAMEZAWA Hiroyuki
2009-11-13 15:27 ` Minchan Kim
2009-11-13 16:26 ` KAMEZAWA Hiroyuki
2009-11-13 7:41 ` [RFC MM 4/4] speculative page fault KAMEZAWA Hiroyuki
2009-11-13 15:59 ` Minchan Kim
2009-11-13 16:28 ` KAMEZAWA Hiroyuki
2009-11-13 16:20 ` Minchan Kim [this message]
2009-11-13 16:38 ` [RFC MM] " KAMEZAWA Hiroyuki
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=28c262360911130820r34d2d2d2jf2ca754447eb9f5@mail.gmail.com \
--to=minchan.kim@gmail.com \
--cc=cl@linux-foundation.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--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