lkml.org 
[lkml]   [2009]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: + memory-hotplug-update-zone-pcp-at-memory-online.patch added to -mm tree
    On Tue, Jun 30, 2009 at 06:17:52AM +0800, Christoph Lameter wrote:
    > On Mon, 29 Jun 2009, akpm@linux-foundation.org wrote:
    >
    > > In my test, 128M memory is hot added, but zone's pcp batch is 0, which is
    > > an obvious error. When pages are onlined, zone pcp should be updated
    > > accordingly.
    >
    > Another side effect of the checks for unpopulated zones....?
    Even for populated zones, the pcp should be updated as its value might not
    be good as more memory is added.

    > > diff -puN mm/page_alloc.c~memory-hotplug-update-zone-pcp-at-memory-online mm/page_alloc.c
    > > --- a/mm/page_alloc.c~memory-hotplug-update-zone-pcp-at-memory-online
    > > +++ a/mm/page_alloc.c
    > > @@ -3135,6 +3135,31 @@ int zone_wait_table_init(struct zone *zo
    > > return 0;
    > > }
    > >
    > > +static int __zone_pcp_update(void *data)
    > > +{
    > > + struct zone *zone = data;
    > > + int cpu;
    > > + unsigned long batch = zone_batchsize(zone), flags;
    > > +
    > > + for (cpu = 0; cpu < NR_CPUS; cpu++) {
    >
    > foreach possible cpu?
    Just follows zone_pcp_init(), do you think we should change that too?

    > > + struct per_cpu_pageset *pset;
    > > + struct per_cpu_pages *pcp;
    > > +
    > > + pset = zone_pcp(zone, cpu);
    > > + pcp = &pset->pcp;
    > > +
    > > + local_irq_save(flags);
    > > + free_pages_bulk(zone, pcp->count, &pcp->list, 0);
    >
    > There are no pages in the pageset since the pcp batch is zero right?
    It might not be zero for a populated zone, see above comments.

    Thanks,
    Shaohua


    \
     
     \ /
      Last update: 2009-06-30 03:01    [W:0.036 / U:33.076 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site