From: Andrew Morton <akpm@linux-foundation.org>
To: KY Srinivasan <kys@microsoft.com>
Cc: Greg KH <gregkh@linuxfoundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>
Subject: Re: drivres/hv
Date: Thu, 15 Nov 2012 14:34:42 -0800 [thread overview]
Message-ID: <20121115143442.fd3672b8.akpm@linux-foundation.org> (raw)
In-Reply-To: <426367E2313C2449837CD2DE46E7EAF930E47FEC@SN2PRD0310MB382.namprd03.prod.outlook.com>
On Thu, 15 Nov 2012 22:22:06 +0000
KY Srinivasan <kys@microsoft.com> wrote:
>
>
> > -----Original Message-----
> > From: Greg KH [mailto:gregkh@linuxfoundation.org]
> > Sent: Friday, November 02, 2012 7:37 PM
> > To: KY Srinivasan
> > Cc: linux-kernel@vger.kernel.org; devel@linuxdriverproject.org
> > Subject: Re: drivres/hv
> >
> > On Fri, Nov 02, 2012 at 03:11:23PM -0700, K. Y. Srinivasan wrote:
> > >
> > > Greg,
> > >
> > > Recently, I had re-sent a few patches. You have applied all the patches except
> > the balloon driver
> > > related patches. Should I resend the balloon driver patches. Let me know.
> >
> > I can't apply the balloon driver until you get an ack from the
> > maintainers of the code you were exporting the symbols from.
> >
> > Get that, and then resend them, as they are long gone from my "to-apply"
> > queue.
>
> Greg,
>
> Andrew has checked in my patch that exports the necessary function for Hyper-V
> balloon driver:
>
> commit bb2495a71b8499bdfe207738bc88ffa91ebe0b0a
> Author: K. Y. Srinivasan <kys@microsoft.com>
> Date: Thu Nov 15 13:37:59 2012 +1100
>
> I had sent the new balloon driver that used this new function a few days ago. Should I
> resend the balloon driver. Let me know.
I'll send this in to Linus later this week, to make life easier for
everyone. Or Greg can grab it.
From: "K. Y. Srinivasan" <kys@microsoft.com>
Subject: mm: export a function to get vm committed memory
It will be useful to be able to access global memory commitment from
device drivers. On the Hyper-V platform, the host has a policy engine to
balance the available physical memory amongst all competing virtual
machines hosted on a given node. This policy engine is driven by a number
of metrics including the memory commitment reported by the guests. The
balloon driver for Linux on Hyper-V will use this function to retrieve
guest memory commitment. This function is also used in Xen self
ballooning code.
[akpm@linux-foundation.org: coding-style tweak]
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Cc: Greg KH <greg@kroah.com>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/xen/xen-selfballoon.c | 2 +-
include/linux/mman.h | 2 ++
mm/mmap.c | 14 ++++++++++++++
mm/nommu.c | 15 +++++++++++++++
4 files changed, 32 insertions(+), 1 deletion(-)
diff -puN drivers/xen/xen-selfballoon.c~mm-export-a-function-to-get-vm-committed-memory drivers/xen/xen-selfballoon.c
--- a/drivers/xen/xen-selfballoon.c~mm-export-a-function-to-get-vm-committed-memory
+++ a/drivers/xen/xen-selfballoon.c
@@ -222,7 +222,7 @@ static void selfballoon_process(struct w
if (xen_selfballooning_enabled) {
cur_pages = totalram_pages;
tgt_pages = cur_pages; /* default is no change */
- goal_pages = percpu_counter_read_positive(&vm_committed_as) +
+ goal_pages = vm_memory_committed() +
totalreserve_pages +
MB2PAGES(selfballoon_reserved_mb);
#ifdef CONFIG_FRONTSWAP
diff -puN include/linux/mman.h~mm-export-a-function-to-get-vm-committed-memory include/linux/mman.h
--- a/include/linux/mman.h~mm-export-a-function-to-get-vm-committed-memory
+++ a/include/linux/mman.h
@@ -11,6 +11,8 @@ extern int sysctl_overcommit_memory;
extern int sysctl_overcommit_ratio;
extern struct percpu_counter vm_committed_as;
+unsigned long vm_memory_committed(void);
+
static inline void vm_acct_memory(long pages)
{
percpu_counter_add(&vm_committed_as, pages);
diff -puN mm/mmap.c~mm-export-a-function-to-get-vm-committed-memory mm/mmap.c
--- a/mm/mmap.c~mm-export-a-function-to-get-vm-committed-memory
+++ a/mm/mmap.c
@@ -89,6 +89,20 @@ int sysctl_max_map_count __read_mostly =
struct percpu_counter vm_committed_as ____cacheline_aligned_in_smp;
/*
+ * The global memory commitment made in the system can be a metric
+ * that can be used to drive ballooning decisions when Linux is hosted
+ * as a guest. On Hyper-V, the host implements a policy engine for dynamically
+ * balancing memory across competing virtual machines that are hosted.
+ * Several metrics drive this policy engine including the guest reported
+ * memory commitment.
+ */
+unsigned long vm_memory_committed(void)
+{
+ return percpu_counter_read_positive(&vm_committed_as);
+}
+EXPORT_SYMBOL_GPL(vm_memory_committed);
+
+/*
* Check that a process has enough memory to allocate a new virtual
* mapping. 0 means there is enough memory for the allocation to
* succeed and -ENOMEM implies there is not.
diff -puN mm/nommu.c~mm-export-a-function-to-get-vm-committed-memory mm/nommu.c
--- a/mm/nommu.c~mm-export-a-function-to-get-vm-committed-memory
+++ a/mm/nommu.c
@@ -66,6 +66,21 @@ int heap_stack_gap = 0;
atomic_long_t mmap_pages_allocated;
+/*
+ * The global memory commitment made in the system can be a metric
+ * that can be used to drive ballooning decisions when Linux is hosted
+ * as a guest. On Hyper-V, the host implements a policy engine for dynamically
+ * balancing memory across competing virtual machines that are hosted.
+ * Several metrics drive this policy engine including the guest reported
+ * memory commitment.
+ */
+unsigned long vm_memory_committed(void)
+{
+ return percpu_counter_read_positive(&vm_committed_as);
+}
+
+EXPORT_SYMBOL_GPL(vm_memory_committed);
+
EXPORT_SYMBOL(mem_map);
EXPORT_SYMBOL(num_physpages);
_
next prev parent reply other threads:[~2012-11-15 22:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-02 22:11 drivres/hv K. Y. Srinivasan
2012-11-02 23:37 ` drivres/hv Greg KH
2012-11-03 14:13 ` drivres/hv KY Srinivasan
2012-11-15 22:22 ` drivres/hv KY Srinivasan
2012-11-15 22:34 ` Andrew Morton [this message]
2012-11-15 22:42 ` drivres/hv Greg KH
-- strict thread matches above, loose matches on Subject: below --
2015-11-30 21:15 drivres/hv K. Y. Srinivasan
2016-02-08 6:13 ` drivres/hv Greg KH
2015-08-01 19:46 drivres/hv K. Y. Srinivasan
2015-08-01 18:35 ` drivres/hv Greg KH
2015-08-01 18:39 ` drivres/hv KY Srinivasan
2012-11-28 20:17 drivres/hv K. Y. Srinivasan
2012-11-28 22:43 ` drivres/hv Greg KH
2012-11-28 23:32 ` drivres/hv KY Srinivasan
2012-11-29 0:04 ` drivres/hv Greg KH
2012-11-29 0:35 ` drivres/hv KY Srinivasan
2012-11-29 10:13 ` drivres/hv Alan Cox
[not found] <1328150891-29752-1-git-send-email-y>
2012-02-02 2:55 ` drivres/hv Greg KH
2012-02-02 2:48 drivres/hv y
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121115143442.fd3672b8.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@linuxfoundation.org \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.