diff options
author | bouyer <bouyer> | 2005-09-10 15:54:38 +0000 |
---|---|---|
committer | bouyer <bouyer> | 2005-09-10 15:54:38 +0000 |
commit | 214edec6ac98553eb412f64f9d0c7b5932110654 (patch) | |
tree | e60ff4cf5a8f4f179a59cf7f8b28a47a322825b5 /sysutils/xentools20 | |
parent | 2a128c1fae4a84ab268c232f3ef9a30d5073cd9e (diff) | |
download | pkgsrc-214edec6ac98553eb412f64f9d0c7b5932110654.tar.gz |
Sync xenio.h with kernel, and apply patch from Jed Davis on port-xen:
| libxc change #1 is to have xfrd's forked child munmap each 4MB batch
| of foreign RAM after it's done writing it, rather than unmapping only
| the last one and letting the process's exit clean up the rest. This
| really does look like a simple mistake, and strictly speaking it's not
| that big a deal -- but on NetBSD, the foreign mappings count against
| the process's locked memory rlimit as if it were the dom0's own RAM.
|
| libxc change #2... I don't really understand the problem; it has
| something to do with live migration and the domU releasing
| pseudo-physical pages after they were sent but before it's suspended.
| Except that, for non-live mode, I think it's reporting all the holes
| in the pseudo-physical range, even though those pages haven't been
| sent. In any case, the result is that the restoring xfrd fails to
| decrease_reservation the pages away. And I distinctly recall this
| working at least once under Linux with Xen 2, but I have little idea
| what NetBSD might be doing differently.
Bump PKGREVISION. This, along with a up to date -current kernel,
make xm (save|restore) work properly for a linux domU.
Diffstat (limited to 'sysutils/xentools20')
-rw-r--r-- | sysutils/xentools20/Makefile | 4 | ||||
-rw-r--r-- | sysutils/xentools20/distinfo | 3 | ||||
-rw-r--r-- | sysutils/xentools20/files/xenio.h | 2 | ||||
-rw-r--r-- | sysutils/xentools20/patches/patch-av | 35 |
4 files changed, 40 insertions, 4 deletions
diff --git a/sysutils/xentools20/Makefile b/sysutils/xentools20/Makefile index e51ae4d77c0..5e2cc1b1eda 100644 --- a/sysutils/xentools20/Makefile +++ b/sysutils/xentools20/Makefile @@ -1,9 +1,9 @@ -# $NetBSD: Makefile,v 1.18 2005/08/19 18:12:39 jlam Exp $ +# $NetBSD: Makefile,v 1.19 2005/09/10 15:54:38 bouyer Exp $ # DISTNAME= xen-2.0.7-src PKGNAME= xentools20-2.0.7 -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= sysutils MASTER_SITES= http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/ EXTRACT_SUFX= .tgz diff --git a/sysutils/xentools20/distinfo b/sysutils/xentools20/distinfo index 2a2de38b199..95e97334312 100644 --- a/sysutils/xentools20/distinfo +++ b/sysutils/xentools20/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.10 2005/08/19 13:06:31 bouyer Exp $ +$NetBSD: distinfo,v 1.11 2005/09/10 15:54:38 bouyer Exp $ SHA1 (xen-2.0.7-src.tgz) = 5317100e1e062961e3fee398fccbf023eb8f0337 RMD160 (xen-2.0.7-src.tgz) = db99fb49e592df7229d4d361c48bab1d23a1d725 @@ -19,3 +19,4 @@ SHA1 (patch-aq) = 96ac4caaa268069ee02962a917f85753515747be SHA1 (patch-as) = 333da168af43dae9a4e8695409cbd006e7fcf097 SHA1 (patch-at) = 0964bc7dd23ff6fcd596d6a8564d9e3033f34563 SHA1 (patch-au) = a5eb7b34d43f57a3e1d4644e98ec571f30c56f5e +SHA1 (patch-av) = 8de5c95093571670f3eedf71684634f999ebda54 diff --git a/sysutils/xentools20/files/xenio.h b/sysutils/xentools20/files/xenio.h index 2f2d91f4289..b4514a1831b 100644 --- a/sysutils/xentools20/files/xenio.h +++ b/sysutils/xentools20/files/xenio.h @@ -83,7 +83,7 @@ typedef struct privcmd_blkmsg #define IOCTL_PRIVCMD_MMAPBATCH \ _IOW('P', 3, privcmd_mmapbatch_t) #define IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN \ - _IOW('P', 4, unsigned long) + _IOR('P', 4, unsigned long) /* * @cmd: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN diff --git a/sysutils/xentools20/patches/patch-av b/sysutils/xentools20/patches/patch-av new file mode 100644 index 00000000000..bed82de7667 --- /dev/null +++ b/sysutils/xentools20/patches/patch-av @@ -0,0 +1,35 @@ +$NetBSD: patch-av,v 1.1 2005/09/10 15:54:39 bouyer Exp $ + +--- libxc/xc_linux_save.c.orig 2005-08-03 19:57:57.000000000 -0400 ++++ libxc/xc_linux_save.c 2005-09-06 23:23:44.000000000 -0400 +@@ -850,11 +850,10 @@ + } /* end of the write out for this batch */ + + sent_this_iter += batch; ++ munmap(region_base, batch*PAGE_SIZE); + + } /* end of this while loop for this iteration */ + +- munmap(region_base, batch*PAGE_SIZE); +- + skip: + + total_sent += sent_this_iter; +@@ -950,7 +949,7 @@ + + for ( i = 0, j = 0; i < nr_pfns; i++ ) + { +- if ( ! is_mapped(live_pfn_to_mfn_table[i]) ) ++ if ( ! is_mapped(live_pfn_to_mfn_table[i]) && !test_bit(i, to_fix) ) + j++; + } + +@@ -962,7 +961,7 @@ + + for ( i = 0, j = 0; i < nr_pfns; ) + { +- if ( ! is_mapped(live_pfn_to_mfn_table[i]) ) ++ if ( ! is_mapped(live_pfn_to_mfn_table[i]) && !test_bit(i, to_fix) ) + { + pfntab[j++] = i; + } |