[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Merged.
# HG changeset patch # User emellor@xxxxxxxxxxxxxxxxxxxxxx # Node ID 33b2ae0246632237d6b8f1893b307f2f51b0315b # Parent ea609f28ec01b7cc9b540481cf99173b83135863 # Parent d714f923b7cfff705dcf9aae30a06709340059aa Merged. --- linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 2 - tools/python/xen/xend/XendDomainInfo.py | 2 - tools/python/xen/xend/image.py | 24 ++++++++++------ tools/xm-test/tests/network/03_network_local_tcp_pos.py | 4 +- tools/xm-test/tests/network/04_network_local_udp_pos.py | 4 +- tools/xm-test/tests/network/06_network_dom0_tcp_pos.py | 2 - tools/xm-test/tests/network/07_network_dom0_udp_pos.py | 2 - tools/xm-test/tests/network/12_network_domU_tcp_pos.py | 2 - tools/xm-test/tests/network/13_network_domU_udp_pos.py | 2 - xen/arch/x86/hvm/hvm.c | 6 +++- xen/arch/x86/hvm/svm/svm.c | 4 ++ xen/arch/x86/hvm/svm/vmcb.c | 17 ++++++----- 12 files changed, 43 insertions(+), 28 deletions(-) diff -r ea609f28ec01 -r 33b2ae024663 linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Fri May 19 16:21:43 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Fri May 19 16:21:49 2006 +0100 @@ -1045,8 +1045,6 @@ static void network_connect(struct net_d notify_remote_via_irq(np->irq); network_tx_buf_gc(dev); - network_maybe_wake_tx(dev); - spin_unlock(&np->rx_lock); spin_unlock_irq(&np->tx_lock); } diff -r ea609f28ec01 -r 33b2ae024663 tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/python/xen/xend/XendDomainInfo.py Fri May 19 16:21:49 2006 +0100 @@ -1264,7 +1264,7 @@ class XendDomainInfo: m = self.image.getDomainMemory(self.info['memory'] * 1024) balloon.free(m) xc.domain_setmaxmem(self.domid, m) - xc.domain_memory_increase_reservation(self.domid, m, 0, 0) + xc.domain_memory_increase_reservation(self.domid, self.info['memory'] * 1024, 0, 0) self.createChannels() diff -r ea609f28ec01 -r 33b2ae024663 tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/python/xen/xend/image.py Fri May 19 16:21:49 2006 +0100 @@ -19,6 +19,7 @@ import os, string import re +import math import xen.lowlevel.xc from xen.xend import sxp @@ -141,11 +142,13 @@ class ImageHandler: % (self.ostype, self.vm.getDomid(), str(result))) - def getDomainMemory(self, mem): + def getDomainMemory(self, mem_kb): """@return The memory required, in KiB, by the domain to store the - given amount, also in KiB. This is normally just mem, but HVM domains - have overheads to account for.""" - return mem + given amount, also in KiB. This is normally just mem, but if HVM is + supported, keep a little extra free.""" + if 'hvm' in xc.xeninfo()['xen_caps']: + mem_kb += 4*1024; + return mem_kb def buildDomain(self): """Build the domain. Define in subclass.""" @@ -377,15 +380,20 @@ class HVMImageHandler(ImageHandler): os.waitpid(self.pid, 0) self.pid = 0 - def getDomainMemory(self, mem): + def getDomainMemory(self, mem_kb): """@see ImageHandler.getDomainMemory""" - page_kb = 4 - extra_pages = 0 if os.uname()[4] == 'ia64': page_kb = 16 # ROM size for guest firmware, ioreq page and xenstore page extra_pages = 1024 + 2 - return mem + extra_pages * page_kb + else: + page_kb = 4 + # This was derived emperically: + # 2.4 MB overhead per 1024 MB RAM + 8 MB constant + # + 4 to avoid low-memory condition + extra_mb = (2.4/1024) * (mem_kb/1024.0) + 12; + extra_pages = int( math.ceil( extra_mb*1024 / page_kb )) + return mem_kb + extra_pages * page_kb def register_shutdown_watch(self): """ add xen store watch on control/shutdown """ diff -r ea609f28ec01 -r 33b2ae024663 tools/xm-test/tests/network/03_network_local_tcp_pos.py --- a/tools/xm-test/tests/network/03_network_local_tcp_pos.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/xm-test/tests/network/03_network_local_tcp_pos.py Fri May 19 16:21:49 2006 +0100 @@ -44,7 +44,7 @@ try: lofails="" for size in trysizes: out = console.runCmd("hping2 127.0.0.1 -E /dev/urandom -q -c 20 " - + "--fast -d " + str(size)) + + "--fast -d " + str(size) + " -N " + str(size)) if out["return"]: lofails += " " + str(size) @@ -54,7 +54,7 @@ try: ip = netdev.getNetDevIP() for size in trysizes: out = console.runCmd("hping2 " + ip + " -E /dev/urandom -q -c 20 " - + "--fast -d "+ str(size)) + + "--fast -d "+ str(size) + " -N " + str(size)) if out["return"]: eth0fails += " " + str(size) except ConsoleError, e: diff -r ea609f28ec01 -r 33b2ae024663 tools/xm-test/tests/network/04_network_local_udp_pos.py --- a/tools/xm-test/tests/network/04_network_local_udp_pos.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/xm-test/tests/network/04_network_local_udp_pos.py Fri May 19 16:21:49 2006 +0100 @@ -43,7 +43,7 @@ try: lofails="" for size in trysizes: out = console.runCmd("hping2 127.0.0.1 -E /dev/urandom -2 -q -c 20 " - + "--fast -d " + str(size)) + + "--fast -d " + str(size) + " -N " + str(size)) if out["return"]: lofails += " " + str(size) print out["output"] @@ -54,7 +54,7 @@ try: ip = netdev.getNetDevIP() for size in trysizes: out = console.runCmd("hping2 " + ip + " -E /dev/urandom -2 -q -c 20 " - + "--fast -d " + str(size)) + + "--fast -d " + str(size) + " -N " + str(size)) if out["return"]: eth0fails += " " + str(size) print out["output"] diff -r ea609f28ec01 -r 33b2ae024663 tools/xm-test/tests/network/06_network_dom0_tcp_pos.py --- a/tools/xm-test/tests/network/06_network_dom0_tcp_pos.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/xm-test/tests/network/06_network_dom0_tcp_pos.py Fri May 19 16:21:49 2006 +0100 @@ -44,7 +44,7 @@ try: dom0ip = netdev.getDom0AliasIP() for size in trysizes: out = console.runCmd("hping2 " + dom0ip + " -E /dev/urandom -q -c 20 " - + "--fast -d " + str(size)) + + "--fast -d " + str(size) + " -N " + str(size)) if out["return"]: fails += " " + str(size) print out["output"] diff -r ea609f28ec01 -r 33b2ae024663 tools/xm-test/tests/network/07_network_dom0_udp_pos.py --- a/tools/xm-test/tests/network/07_network_dom0_udp_pos.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/xm-test/tests/network/07_network_dom0_udp_pos.py Fri May 19 16:21:49 2006 +0100 @@ -43,7 +43,7 @@ try: dom0ip = netdev.getDom0AliasIP() for size in trysizes: out = console.runCmd("hping2 " + dom0ip + " -E /dev/urandom -2 -q -c 20" - + " --fast -d " + str(size)) + + " --fast -d " + str(size) + " -N " + str(size)) if out["return"]: fails += " " + str(size) print out["output"] diff -r ea609f28ec01 -r 33b2ae024663 tools/xm-test/tests/network/12_network_domU_tcp_pos.py --- a/tools/xm-test/tests/network/12_network_domU_tcp_pos.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/xm-test/tests/network/12_network_domU_tcp_pos.py Fri May 19 16:21:49 2006 +0100 @@ -50,7 +50,7 @@ try: ip2 = dst_netdev.getNetDevIP() for size in pingsizes: out = src_console.runCmd("hping2 " + ip2 + " -E /dev/urandom -q -c 20 " - + "--fast -d " + str(size)) + + "--fast -d " + str(size) + " -N " + str(size)) if out["return"]: fails += " " + str(size) print out["output"] diff -r ea609f28ec01 -r 33b2ae024663 tools/xm-test/tests/network/13_network_domU_udp_pos.py --- a/tools/xm-test/tests/network/13_network_domU_udp_pos.py Fri May 19 16:21:43 2006 +0100 +++ b/tools/xm-test/tests/network/13_network_domU_udp_pos.py Fri May 19 16:21:49 2006 +0100 @@ -50,7 +50,7 @@ try: ip2 = dst_netdev.getNetDevIP() for size in pingsizes: out = src_console.runCmd("hping2 " + ip2 + " -E /dev/urandom -2 -q " - + "-c 20 --fast -d " + str(size)) + + "-c 20 --fast -d " + str(size) + " -N " + str(size)) if out["return"]: fails += " " + str(size) print out["output"] diff -r ea609f28ec01 -r 33b2ae024663 xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c Fri May 19 16:21:43 2006 +0100 +++ b/xen/arch/x86/hvm/hvm.c Fri May 19 16:21:49 2006 +0100 @@ -189,7 +189,11 @@ void hvm_setup_platform(struct domain* d if ( !hvm_guest(current) || (current->vcpu_id != 0) ) return; - shadow_direct_map_init(d); + if ( shadow_direct_map_init(d) == 0 ) + { + printk("Can not allocate shadow direct map for HVM domain.\n"); + domain_crash_synchronous(); + } hvm_map_io_shared_page(d); hvm_get_info(d); diff -r ea609f28ec01 -r 33b2ae024663 xen/arch/x86/hvm/svm/svm.c --- a/xen/arch/x86/hvm/svm/svm.c Fri May 19 16:21:43 2006 +0100 +++ b/xen/arch/x86/hvm/svm/svm.c Fri May 19 16:21:49 2006 +0100 @@ -458,6 +458,9 @@ int start_svm(void) if (!(test_bit(X86_FEATURE_SVME, &boot_cpu_data.x86_capability))) return 0; + svm_globals[cpu].hsa = alloc_host_save_area(); + if (! svm_globals[cpu].hsa) + return 0; rdmsr(MSR_EFER, eax, edx); eax |= EFER_SVME; @@ -466,7 +469,6 @@ int start_svm(void) printk("AMD SVM Extension is enabled for cpu %d.\n", cpu ); /* Initialize the HSA for this core */ - svm_globals[cpu].hsa = alloc_host_save_area(); phys_hsa = (u64) virt_to_maddr( svm_globals[cpu].hsa ); phys_hsa_lo = (u32) phys_hsa; phys_hsa_hi = (u32) (phys_hsa >> 32); diff -r ea609f28ec01 -r 33b2ae024663 xen/arch/x86/hvm/svm/vmcb.c --- a/xen/arch/x86/hvm/svm/vmcb.c Fri May 19 16:21:43 2006 +0100 +++ b/xen/arch/x86/hvm/svm/vmcb.c Fri May 19 16:21:49 2006 +0100 @@ -139,17 +139,20 @@ static int construct_vmcb_controls(struc /* The following is for I/O and MSR permision map */ iopm = alloc_xenheap_pages(get_order_from_bytes(IOPM_SIZE)); - - ASSERT(iopm); - memset(iopm, 0xff, IOPM_SIZE); - clear_bit(PC_DEBUG_PORT, iopm); + if (iopm) + { + memset(iopm, 0xff, IOPM_SIZE); + clear_bit(PC_DEBUG_PORT, iopm); + } msrpm = alloc_xenheap_pages(get_order_from_bytes(MSRPM_SIZE)); - - ASSERT(msrpm); - memset(msrpm, 0xff, MSRPM_SIZE); + if (msrpm) + memset(msrpm, 0xff, MSRPM_SIZE); arch_svm->iopm = iopm; arch_svm->msrpm = msrpm; + + if (! iopm || ! msrpm) + return 1; vmcb->iopm_base_pa = (u64) virt_to_maddr(iopm); vmcb->msrpm_base_pa = (u64) virt_to_maddr(msrpm); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |