All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mel@csn.ul.ie>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	Tejun Heo <tj@kernel.org>,
	mingo@elte.hu, rusty@rustcorp.com.au,
	Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: [this_cpu_xx V4 13/20] this_cpu_ops: page allocator conversion
Date: Tue, 6 Oct 2009 10:45:44 +0100	[thread overview]
Message-ID: <20091006094544.GC18185@csn.ul.ie> (raw)
In-Reply-To: <alpine.DEB.1.10.0910051055120.16359@gentwo.org>

On Mon, Oct 05, 2009 at 10:55:49AM -0400, Christoph Lameter wrote:
> 
> Changes to this patch so far:
> 
> Index: linux-2.6/mm/page_alloc.c
> ===================================================================
> --- linux-2.6.orig/mm/page_alloc.c	2009-10-05 09:49:07.000000000 -0500
> +++ linux-2.6/mm/page_alloc.c	2009-10-05 09:48:43.000000000 -0500
> @@ -1098,8 +1098,6 @@ static void free_hot_cold_page(struct pa
>  	arch_free_page(page, 0);
>  	kernel_map_pages(page, 1, 0);
> 
> -	local_irq_save(flags);
> -	pcp = &this_cpu_ptr(zone->pageset)->pcp;
>  	migratetype = get_pageblock_migratetype(page);
>  	set_page_private(page, migratetype);
>  	if (unlikely(wasMlocked))

Why did you move local_irq_save() ? It should have stayed where it was
because VM counters are updated under the lock. Only the this_cpu_ptr
should be moving.

> @@ -1121,6 +1119,8 @@ static void free_hot_cold_page(struct pa
>  		migratetype = MIGRATE_MOVABLE;
>  	}
> 
> +	local_irq_save(flags);
> +	pcp = &this_cpu_ptr(zone->pageset)->pcp;
>  	if (cold)
>  		list_add_tail(&page->lru, &pcp->lists[migratetype]);
>  	else
> @@ -3120,7 +3120,8 @@ static struct notifier_block __cpuinitda
>  /*
>   * Allocate per cpu pagesets and initialize them.
>   * Before this call only boot pagesets were available.
> - * Boot pagesets will no longer be used after this call is complete.
> + * Boot pagesets will no longer be used by this processorr
> + * after setup_per_cpu_pageset().
>   */
>  void __init setup_per_cpu_pageset(void)
>  {
> @@ -3232,11 +3233,11 @@ __meminit void setup_pagesets(void)
>  		zone->pageset = &per_cpu_var(boot_pageset);
> 
>  		/*
> -		 * Special pagesets with zero elements so that frees
> +		 * Special pagesets with one element so that frees
>  		 * and allocations are not buffered at all.
>  		 */
>  		for_each_possible_cpu(cpu)
> -			setup_pageset(per_cpu_ptr(zone->pageset, cpu), 0);
> +			setup_pageset(per_cpu_ptr(zone->pageset, cpu), 1);
> 
>  	}
>  }
> 

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

  reply	other threads:[~2009-10-06  9:46 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-01 21:25 [this_cpu_xx V4 00/20] Introduce per cpu atomic operations and avoid per cpu address arithmetic cl
2009-10-01 21:25 ` [this_cpu_xx V4 01/20] Introduce this_cpu_ptr() and generic this_cpu_* operations cl
2009-10-02  9:16   ` Tejun Heo
2009-10-02  9:34   ` Ingo Molnar
2009-10-02 17:11     ` Christoph Lameter
2009-10-06 10:04       ` Rusty Russell
2009-10-06 23:39         ` Christoph Lameter
2009-10-06 23:55         ` Tejun Heo
2009-10-08 17:57         ` [Patchs vs. percpu-next] Use this_cpu_xx to dynamically allocate counters Christoph Lameter
2009-10-13 11:51           ` Rusty Russell
2009-10-08 18:06         ` Christoph Lameter
2009-10-01 21:25 ` [this_cpu_xx V4 02/20] this_cpu: X86 optimized this_cpu operations cl
2009-10-02  9:18   ` Tejun Heo
2009-10-02  9:59   ` Ingo Molnar
2009-10-03 19:33     ` Pekka Enberg
2009-10-04 16:47       ` Ingo Molnar
2009-10-04 16:51         ` Pekka Enberg
2009-10-01 21:25 ` [this_cpu_xx V4 03/20] Use this_cpu operations for SNMP statistics cl
2009-10-01 21:25 ` [this_cpu_xx V4 04/20] Use this_cpu operations for NFS statistics cl
2009-10-01 21:25 ` [this_cpu_xx V4 05/20] use this_cpu ops for network statistics cl
2009-10-01 21:25 ` [this_cpu_xx V4 06/20] this_cpu_ptr: Straight transformations cl
2009-10-01 21:25 ` [this_cpu_xx V4 07/20] this_cpu_ptr: Eliminate get/put_cpu cl
2009-10-01 21:25 ` [this_cpu_xx V4 08/20] this_cpu_ptr: xfs_icsb_modify_counters does not need "cpu" variable cl
2009-10-01 21:25 ` [this_cpu_xx V4 09/20] Use this_cpu_ptr in crypto subsystem cl
2009-10-01 21:25 ` [this_cpu_xx V4 10/20] Use this_cpu ops for VM statistics cl
2009-10-01 21:25 ` [this_cpu_xx V4 11/20] RCU: Use this_cpu operations cl
2009-10-03 10:52   ` Tejun Heo
2009-10-01 21:25 ` [this_cpu_xx V4 12/20] Move early initialization of pagesets out of zone_wait_table_init() cl
2009-10-02 14:16   ` Mel Gorman
2009-10-02 17:30     ` Christoph Lameter
2009-10-05  9:35       ` Mel Gorman
2009-10-03 10:29   ` Tejun Heo
2009-10-05 14:39     ` Christoph Lameter
2009-10-05 15:01       ` Tejun Heo
2009-10-05 15:06         ` Christoph Lameter
2009-10-05 15:21           ` Tejun Heo
2009-10-05 15:28             ` Christoph Lameter
2009-10-05 15:41               ` Tejun Heo
2009-10-05 15:39                 ` Christoph Lameter
2009-10-01 21:25 ` [this_cpu_xx V4 13/20] this_cpu_ops: page allocator conversion cl
2009-10-02 15:14   ` Mel Gorman
2009-10-02 17:39     ` Christoph Lameter
2009-10-05  9:45       ` Mel Gorman
2009-10-05 14:43         ` Christoph Lameter
2009-10-05 14:55           ` Christoph Lameter
2009-10-06  9:45             ` Mel Gorman [this message]
2009-10-06 16:34               ` Christoph Lameter
2009-10-06 17:03                 ` Mel Gorman
2009-10-06 17:51                   ` Christoph Lameter
2009-10-06 18:36                     ` Mel Gorman
2009-10-06 19:06                       ` Christoph Lameter
2009-10-07 10:42                         ` Mel Gorman
2009-10-01 21:25 ` [this_cpu_xx V4 14/20] this_cpu ops: Remove pageset_notifier cl
2009-10-01 21:25 ` [this_cpu_xx V4 15/20] Use this_cpu operations in slub cl
2009-10-01 21:25 ` [this_cpu_xx V4 16/20] SLUB: Get rid of dynamic DMA kmalloc cache allocation cl
2009-10-01 21:25 ` [this_cpu_xx V4 17/20] this_cpu: Remove slub kmem_cache fields cl
2009-10-01 21:25 ` [this_cpu_xx V4 18/20] Make slub statistics use this_cpu_inc cl
2009-10-01 21:25 ` [this_cpu_xx V4 19/20] this_cpu: slub aggressive use of this_cpu operations in the hotpaths cl
2009-10-01 21:25 ` [this_cpu_xx V4 20/20] SLUB: Experimental new fastpath w/o interrupt disable cl
2009-10-02  9:30 ` [this_cpu_xx V4 00/20] Introduce per cpu atomic operations and avoid per cpu address arithmetic Tejun Heo
2009-10-02  9:54   ` Ingo Molnar
2009-10-02 17:15     ` Christoph Lameter
2009-10-02 17:32       ` Ingo Molnar
2009-10-02 17:49         ` Christoph Lameter
2009-10-02 17:10   ` Christoph Lameter

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=20091006094544.GC18185@csn.ul.ie \
    --to=mel@csn.ul.ie \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=penberg@cs.helsinki.fi \
    --cc=rusty@rustcorp.com.au \
    --cc=tj@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.