On Fri, May 22, 2020 at 11:35:34PM +0200, Mark Kettenis wrote: > That can't be right. We get the number of available CPUs for example > from the PRI so pri_init() has to be called before we check. Yup, I fooled myself with poor testing - the commit is already reverted with an explanation. Didn't want to rush anything.
Here's version two that merely moves the "-n" check after the constraint checks; pri_init() continues to be called before using either of `total_cpus' or `total_memory'. $ cat ldom.conf domain guest { vdisk "/dev/null" vcpu 1 memory 1G } $ ./obj/ldomctl init-system -n ldom.conf ; echo $? 0 $ sed -i /memory/s,1,128, ldom.conf $ ./obj/ldomctl init-system -n ldom.conf ldomctl: not enough memory available $ sed -i /cpu/s,1,128, ldom.conf $ ./obj/ldomctl init-system -n ldom.conf ldomctl: not enough VCPU resources available Feedback? OK? Index: config.c =================================================================== RCS file: /cvs/src/usr.sbin/ldomctl/config.c,v retrieving revision 1.36 diff -u -p -r1.36 config.c --- config.c 17 Mar 2020 21:24:22 -0000 1.36 +++ config.c 22 May 2020 22:11:59 -0000 @@ -2792,8 +2798,6 @@ build_config(const char *filename, int n SIMPLEQ_INIT(&conf.domain_list); if (parse_config(filename, &conf) < 0) exit(1); - if (noaction) - exit(0); pri = md_read("pri"); if (pri == NULL) @@ -2822,6 +2826,9 @@ build_config(const char *filename, int n errx(1, "not enough VCPU resources available"); if (memory > total_memory || primary_memory == 0) errx(1, "not enough memory available"); + + if (noaction) + exit(0); hvmd_init(hvmd); primary = primary_init();