diff options
author | Cody P Schafer <cody@linux.vnet.ibm.com> | 2013-07-04 00:01:33 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-04 01:07:27 +0200 |
commit | 0a647f3811d6af56405a819341ceac23e31d4572 (patch) | |
tree | ba96d8341d2de9379d5acbb799cb6da6b5a16b41 /crypto/ahash.c | |
parent | mm/page_alloc: protect pcp->batch accesses with ACCESS_ONCE (diff) | |
download | linux-0a647f3811d6af56405a819341ceac23e31d4572.tar.xz linux-0a647f3811d6af56405a819341ceac23e31d4572.zip |
mm/page_alloc: convert zone_pcp_update() to rely on memory barriers instead of stop_machine()
zone_pcp_update()'s goal is to adjust the ->high and ->mark members of a
percpu pageset based on a zone's ->managed_pages. We don't need to drain
the entire percpu pageset just to modify these fields.
This lets us avoid calling setup_pageset() (and the draining required to
call it) and instead allows simply setting the fields' values (with some
attention paid to memory barriers to prevent the relationship between
->batch and ->high from being thrown off).
This does change the behavior of zone_pcp_update() as the percpu pagesets
will not be drained when zone_pcp_update() is called (they will end up
being shrunk, not completely drained, later when a 0-order page is freed
in free_hot_cold_page()).
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: Gilad Ben-Yossef <gilad@benyossef.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'crypto/ahash.c')
0 files changed, 0 insertions, 0 deletions