diff --git a/dom0/init.d/qubes_core b/dom0/init.d/qubes_core index 9e8d6783..870da372 100755 --- a/dom0/init.d/qubes_core +++ b/dom0/init.d/qubes_core @@ -33,7 +33,7 @@ start() /usr/lib/qubes/qmemman_daemon.py MEM_CHANGE_THRESHOLD_KB=30000 MEMINFO_DELAY_USEC=100000 - /usr/lib/qubes/meminfo-writer $MEM_CHANGE_THRESHOLD_KB $MEMINFO_DELAY_USEC & + /usr/lib/qubes/meminfo-writer $MEM_CHANGE_THRESHOLD_KB $MEMINFO_DELAY_USEC # Hide mounted devices from qubes-block list (at first udev run, only / is mounted) for dev in `xenstore-list /local/domain/0/qubes-block-devices`; do diff --git a/misc/meminfo-writer.c b/misc/meminfo-writer.c index c9e10594..f3563b14 100644 --- a/misc/meminfo-writer.c +++ b/misc/meminfo-writer.c @@ -154,6 +154,17 @@ int main(int argc, char **argv) perror("xs_domain_open"); exit(1); } + if (argc == 3) { + /* if not waiting for signal, fork after first info written to xenstore */ + n = pread(fd, buf, sizeof(buf), 0); + buf[n] = 0; + meminfo_data = parse(buf); + if (meminfo_data) + send_to_qmemman(xs, meminfo_data); + if (fork() > 0) + exit(0); + } + for (;;) { n = pread(fd, buf, sizeof(buf), 0); buf[n] = 0;