|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] [PATCH] [linux-2.6.39.x for xen] tmem: self-ballooning a
> 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
|
|
|
|
|