Use half of host memory as maxmem by default. Allow to configure it per VM.
This commit is contained in:
		
							parent
							
								
									ac84bbe621
								
							
						
					
					
						commit
						aa7df98b7e
					
				| @ -179,6 +179,7 @@ class QubesVm(object): | ||||
|                  root_img = None, | ||||
|                  private_img = None, | ||||
|                  memory = default_memory, | ||||
|                  maxmem = None, | ||||
|                  template_vm = None, | ||||
|                  firewall_conf = None, | ||||
|                  volatile_img = None, | ||||
| @ -246,6 +247,12 @@ class QubesVm(object): | ||||
| 
 | ||||
|         self.memory = memory | ||||
| 
 | ||||
|         if maxmem is None: | ||||
|             total_mem_mb = self.get_total_xen_memory()/1024/1024 | ||||
|             self.maxmem = total_mem_mb/2 | ||||
|         else: | ||||
|             self.maxmem = maxmem | ||||
| 
 | ||||
|         self.template_vm = template_vm | ||||
|         if template_vm is not None: | ||||
|             if updateable: | ||||
| @ -882,8 +889,7 @@ class QubesVm(object): | ||||
|             print "--> Loading the VM (type = {0})...".format(self.type) | ||||
| 
 | ||||
|         if not self.is_netvm(): | ||||
|             total_mem_mb = self.get_total_xen_memory()/1024/1024 | ||||
|             xend_session.xend_server.xend.domain.maxmem_set(self.name, total_mem_mb) | ||||
|             xend_session.xend_server.xend.domain.maxmem_set(self.name, self.maxmem) | ||||
| 
 | ||||
|         mem_required = self.get_mem_dynamic_max() | ||||
|         qmemman_client = QMemmanClient() | ||||
| @ -993,6 +999,7 @@ class QubesVm(object): | ||||
|         attrs["updateable"] = str(self.updateable) | ||||
|         attrs["label"] = self.label.name | ||||
|         attrs["memory"] = str(self.memory) | ||||
|         attrs["maxmem"] = str(self.maxmem) | ||||
|         attrs["pcidevs"] = str(self.pcidevs) | ||||
|         attrs["vcpus"] = str(self.vcpus) | ||||
|         attrs["internal"] = str(self.internal) | ||||
| @ -2004,7 +2011,8 @@ class QubesVmCollection(dict): | ||||
|         common_attr_list = ("qid", "name", "dir_path", "conf_file", | ||||
|                 "private_img", "root_img", "template_qid", | ||||
|                 "installed_by_rpm", "updateable", "internal", | ||||
|                 "uses_default_netvm", "label", "memory", "vcpus", "pcidevs") | ||||
|                 "uses_default_netvm", "label", "memory", "vcpus", "pcidevs", | ||||
|                 "maxmem" ) | ||||
| 
 | ||||
|         for attribute in common_attr_list: | ||||
|             kwargs[attribute] = element.get(attribute) | ||||
|  | ||||
| @ -49,6 +49,8 @@ def do_list(vm): | ||||
|         print fmt.format ("root volatile img", vm.volatile_img) | ||||
| 
 | ||||
|     print fmt.format ("private img", vm.private_img) | ||||
|     print fmt.format ("memory", vm.memory) | ||||
|     print fmt.format ("maxmem", vm.maxmem) | ||||
| 
 | ||||
| 
 | ||||
| def set_label(vms, vm, args): | ||||
| @ -65,6 +67,17 @@ def set_label(vms, vm, args): | ||||
|     vm.label = QubesVmLabels[label] | ||||
|     subprocess.check_call (["ln", "-sf", vm.label.icon_path, vm.icon_path]) | ||||
| 
 | ||||
| def set_memory(vms, vm, args): | ||||
|     if len (args) != 1: | ||||
|         print "Missing memory argument!" | ||||
| 
 | ||||
|     vm.memory = int(args[0]) | ||||
| 
 | ||||
| def set_maxmem(vms, vm, args): | ||||
|     if len (args) != 1: | ||||
|         print "Missing maxmem argument!" | ||||
| 
 | ||||
|     vm.maxmem = int(args[0]) | ||||
| 
 | ||||
| def set_netvm(vms, vm, args): | ||||
|     if len (args) != 1: | ||||
| @ -153,6 +166,8 @@ properties = { | ||||
|     "nonupdateable": set_nonupdateable, | ||||
|     "label" : set_label, | ||||
|     "netvm" : set_netvm, | ||||
|     "maxmem" : set_maxmem, | ||||
|     "memory" : set_memory, | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski
						Marek Marczykowski