[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [PATCH] [linux-2.6.39.x for xen] tmem: self-ballooning and frontswap-selfshrinking



> From: Daniel Kiper [mailto:dkiper@xxxxxxxxxxxx]
> Subject: Re: [Xen-devel] [PATCH] [linux-2.6.39.x for xen] tmem: 
> self-ballooning and frontswap-
> selfshrinking

> goal_pages = percpu_counter_read_positive(&vm_committed_as) +

!!! (Ian cc'ed)

Thanks for catching this!  I had thought vm_committed_as
was not exported (and may not have been when I first
coded this).  Now that it is, the "core kernel" change
that was part of the changeset is no longer required, thus
removing the dependency on core kernel/mm review!  Yay!

> On Mon, Jun 06, 2011 at 03:12:28PM -0700, Dan Magenheimer wrote:
> 
> [...]
> 
> > +static void selfballoon_process(struct work_struct *work)
> > +{
> > +   extern unsigned long vm_get_committed_as(void);
> > +   unsigned long cur_pages, goal_pages, tgt_pages;
> > +   int reset_timer = 0;
> > +
> > +   if (balloon_stats.selfballooning_enabled) {
> > +           tgt_pages = cur_pages = totalram_pages;
> 
> tgt_pages = cur_pages = balloon_stats.current_pages;
> 
> > +           goal_pages = vm_get_committed_as();
> 
> goal_pages = percpu_counter_read_positive(&vm_committed_as) +
>               balloon_stats.current_pages - totalram_pages;
> 
> > +           if (cur_pages > goal_pages)
> > +                   tgt_pages = cur_pages -
> > +                           (cur_pages - goal_pages) / 
> > balloon_stats.selfballoon_downhysteresis;
> > +           else if (cur_pages < goal_pages)
> > +                   tgt_pages = cur_pages +
> > +                           (goal_pages - cur_pages) / 
> > balloon_stats.selfballoon_uphysteresis;
> > +           balloon_set_new_target(tgt_pages);
> > +           reset_timer = 1;
> > +   }
> > +   if (frontswap_selfshrinking_enabled) {
> > +           frontswap_selfshrink();
> > +           reset_timer = 1;
> > +   }
> > +   if (reset_timer)
> > +           schedule_delayed_work(&selfballoon_worker,
> > +                   balloon_stats.selfballoon_interval * HZ);
> > +}

Thanks for the review Daniel!  Do these changes make it compatible
with your hotplug work?

In your second correction (goal_pages), is it possible that
balloon_stats.current_pages is less then totalram_pages?
If so, then goal_pages is less than vm_committed_as,
which I don't think is ever intended.

Thanks,
Dan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.