[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
On Thu, Jun 09, 2011 at 02:12:48PM -0700, Dan Magenheimer wrote: > > 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? Eariler versions of memory hotplug worked fine with tmem. I did not test latest one with tmem, however, it should work without significant changes. If you wish I could help you to intergrate tmem with memory hotplug. > In your second correction (goal_pages), is it possible that > balloon_stats.current_pages is less then totalram_pages? balloon_stats.current_pages is always greater than totalram_pages. balloon_stats.current_pages counts all pages currently available to the system. totalram_pages counts only pages which could be allocated for user space processes (more or less). It means that balloon_stats.current_pages - totalram_pages represents all pages allocated by kernel (more or less). Daniel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |