Re: [Qemu-devel] [PATCH] Assume madvise for (no)hugepage works

2015-11-20 Thread Juan Quintela
"Dr. David Alan Gilbert (git)"  wrote:
> From: "Dr. David Alan Gilbert" 
>
> madvise() returns EINVAL in the case of many failures, but also
> returns it in cases where the host kernel doesn't have THP enabled.
> Postcopy only really cares that THP is off before it detects faults,
> and turns it back on afterwards; so we're going to have
> to assume that if the madvise fails then the host just doesn't do
> THP and we can carry on with the postcopy.
>
> Signed-off-by: Dr. David Alan Gilbert 
> Tested-by: Jason J. Herne 

Reviewed-by: Juan Quintela 



Re: [Qemu-devel] [PATCH] Assume madvise for (no)hugepage works

2015-11-20 Thread Amit Shah
On (Thu) 19 Nov 2015 [15:27:48], Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" 
> 
> madvise() returns EINVAL in the case of many failures, but also
> returns it in cases where the host kernel doesn't have THP enabled.
> Postcopy only really cares that THP is off before it detects faults,
> and turns it back on afterwards; so we're going to have
> to assume that if the madvise fails then the host just doesn't do
> THP and we can carry on with the postcopy.
> 
> Signed-off-by: Dr. David Alan Gilbert 
> Tested-by: Jason J. Herne 

Reviewed-by: Amit Shah 

Amit



[Qemu-devel] [PATCH] Assume madvise for (no)hugepage works

2015-11-19 Thread Dr. David Alan Gilbert (git)
From: "Dr. David Alan Gilbert" 

madvise() returns EINVAL in the case of many failures, but also
returns it in cases where the host kernel doesn't have THP enabled.
Postcopy only really cares that THP is off before it detects faults,
and turns it back on afterwards; so we're going to have
to assume that if the madvise fails then the host just doesn't do
THP and we can carry on with the postcopy.

Signed-off-by: Dr. David Alan Gilbert 
Tested-by: Jason J. Herne 
---
 migration/postcopy-ram.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 22d6b18..3946aa9 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -241,10 +241,7 @@ static int cleanup_range(const char *block_name, void 
*host_addr,
  * We turned off hugepage for the precopy stage with postcopy enabled
  * we can turn it back on now.
  */
-if (qemu_madvise(host_addr, length, QEMU_MADV_HUGEPAGE)) {
-error_report("%s HUGEPAGE: %s", __func__, strerror(errno));
-return -1;
-}
+qemu_madvise(host_addr, length, QEMU_MADV_HUGEPAGE);
 
 /*
  * We can also turn off userfault now since we should have all the
@@ -345,10 +342,7 @@ static int nhp_range(const char *block_name, void 
*host_addr,
  * do delete areas of the page, even if THP thinks a hugepage would
  * be a good idea, so force hugepages off.
  */
-if (qemu_madvise(host_addr, length, QEMU_MADV_NOHUGEPAGE)) {
-error_report("%s: NOHUGEPAGE: %s", __func__, strerror(errno));
-return -1;
-}
+qemu_madvise(host_addr, length, QEMU_MADV_NOHUGEPAGE);
 
 return 0;
 }
-- 
2.5.0