Re: [RFC PATCH] asynchronous page fault.

From: KAMEZAWA Hiroyuki
Date: Sun Dec 27 2009 - 20:22:26 EST


On Mon, 28 Dec 2009 09:36:06 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:

> == one vma ==
> # Samples: 1338964273489
> #
> # Overhead Command Shared Object Symbol
> # ........ ............... ........................ ......
> #
> 26.90% multi-fault-all [kernel] [k] clear_page_c
> |
> --- clear_page_c
> __alloc_pages_nodemask
> handle_mm_fault
> do_page_fault
> page_fault
> 0x400940
> |
> --100.00%-- (nil)
>
> 20.65% multi-fault-all [kernel] [k] _raw_spin_lock
> |
> --- _raw_spin_lock
> |
> |--85.07%-- free_pcppages_bulk
> | free_hot_cold_page
>
> ....<snip>
> 3.94% multi-fault-all [kernel] [k] find_vma_speculative
> |
> --- find_vma_speculative
> |
> |--99.40%-- do_page_fault
> | page_fault
> | 0x400940
> | |
> | --100.00%-- (nil)
> |
> --0.60%-- page_fault
> 0x400940
> |
> --100.00%-- (nil)
> ==
>
A small modification for avoiding atomic_add_unless() makes following score.
(used atomic_inc()->atomic_read() instead of that.)
==
2.55% multi-fault-all [kernel] [k] vma_put
|
--- vma_put
|
|--98.87%-- do_page_fault
| page_fault
| 0x400940
| (nil)
|
--1.13%-- page_fault
0x400940
(nil)
0.65% multi-fault-all [kernel] [k] find_vma_speculative
|
--- find_vma_speculative
|
|--95.55%-- do_page_fault
| page_fault
| 0x400940
| |
| --100.00%-- (nil)
|
--4.45%-- page_fault
0x400940
(nil)
==
Hmm...maybe worth to consider some.
I hope something good pops up to me after new year vacation.

Regards,
-Kame





--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/