From f3edd66008b66ec4e18aa52f87449910e4c1eb91 Mon Sep 17 00:00:00 2001 From: Vincent Hanquez Date: Tue, 8 Sep 2009 15:50:14 +0100 Subject: [PATCH] augment the cpus_affinity config when adding a id:v1,v2,... to cpus-affinity config. --- xenvm/vmconfig.ml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/xenvm/vmconfig.ml b/xenvm/vmconfig.ml index e68cd00..f818808 100644 --- a/xenvm/vmconfig.ml +++ b/xenvm/vmconfig.ml @@ -519,6 +519,15 @@ let list_add cfg field value = | k :: [] -> k, "" | _ -> failwith "bad format for platform. expecting k=v" in + let config_cpus_affinity_of_string s = + match String.split ~limit:2 ':' s with + | k :: v :: [] -> + let id = int_of_string k in + let args = String.split ',' v in + let vcpus = List.map int_of_string args in + (id, vcpus) + | _ -> failwith "bad format for cpu affinity. expecting id:list" + in match field with | "disk" -> { cfg with disks = cfg.disks @ [ config_disk_of_string value ] } | "nic" | "vif" -> { cfg with nics = cfg.nics @ [ config_nic_of_string value ] } @@ -528,6 +537,7 @@ let list_add cfg field value = | "platform" -> { cfg with platform = cfg.platform @ [ config_platform_of_string value ] } | "extra-local-watch" -> { cfg with extra_local_watches = cfg.extra_local_watches @ [ value ] } | "extra-vm-watch" -> { cfg with extra_vm_watches = cfg.extra_vm_watches @ [ value ] } + | "cpus-affinity" -> { cfg with cpus_affinity = cfg.cpus_affinity @ [ config_cpus_affinity_of_string value ] } | _ -> raise (Unknown_field field) let list_del cfg field index = @@ -639,7 +649,7 @@ let of_file uuid error_report file = ] in let kv k v = match k with - | "disk" | "vif" | "nic" | "pci" | "cpuid" + | "disk" | "vif" | "nic" | "pci" | "cpuid" | "cpus-affinity" | "extra-hvm" | "extra-local-watch" | "extra-vm-watch" -> cfg := list_add !cfg k v | _ -> -- 2.39.5