WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Daniel Kiper <dkiper@xxxxxxxxxxxx>
Subject: RE: [Xen-devel] [PATCH] [linux-2.6.39.x for xen] tmem: self-ballooning and frontswap-selfshrinking
From: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>
Date: Thu, 9 Jun 2011 14:12:48 -0700 (PDT)
Cc: jeremy@xxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, Konrad Wilk <konrad.wilk@xxxxxxxxxx>, JBeulich@xxxxxxxxxx, Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>, Dushmanta Mohapatra <dmpatra@xxxxxxxxx>
Delivery-date: Thu, 09 Jun 2011 14:14:15 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20110609172157.GA23592@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <292df482-2d4c-4a4f-b5f4-4c808692156e@default 20110609172157.GA23592@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> 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

<Prev in Thread] Current Thread [Next in Thread>