]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
tools/ocaml/xenctrl: Use larger chunksize in domain_getinfolist
authorEdwin Török <edvin.torok@citrix.com>
Tue, 1 Nov 2022 17:59:17 +0000 (17:59 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 1 Dec 2022 16:07:17 +0000 (16:07 +0000)
domain_getinfolist() is quadratic with the number of domains, because of the
behaviour of the underlying hypercall.  Nevertheless, getting domain info in
blocks of 1024 is far more efficient than blocks of 2.

In a scalability testing scenario with ~1000 VMs, a combination of this and
the previous change takes xenopsd's wallclock time in domain_getinfolist()
down from 88% to 0.02%

Signed-off-by: Edwin Török <edvin.torok@citrix.com>
Tested-by: Pau Ruiz Safont <pau.safont@citrix.com>
Acked-by: Christian Lindig <christian.lindig@citrix.com>
tools/ocaml/libs/xc/xenctrl.ml

index 85b73a7f6fe8c772fdc53910ea69199c0ee03609..aa650533f718fe41e2cfbe32189e3708dc3b42da 100644 (file)
@@ -233,7 +233,7 @@ let rev_append_fold acc e = List.rev_append e acc
 let rev_concat lst = List.fold_left rev_append_fold [] lst
 
 let domain_getinfolist handle first_domain =
-       let nb = 2 in
+       let nb = 1024 in
        let rec __getlist lst from =
                (* _domain_getinfolist returns domains in reverse order, largest first *)
                match _domain_getinfolist handle from nb with