core-admin/dom0
Rafal Wojtczuk 37e06d19e4 qmemman: handle requests for small pieces correctly
There seems to be a problem with xm mem-set, when executed for a value
very close to the current value - the request is ignored; apparently, the
domU kernel imposes some granularity on the request size.
So, if qmemman is asked for, say 470MB, and there is 469MB free, it will try
to milk 1MB from all domains - and this will fail. REQ_SAFETY_NET_FACTOR
does not help in this scenario.
The logs show
req= 1110016 avail= 2503727104.0 donors [('11', 194375270.40000001),...
borrow 90484.1597129 from 11 - so, beg for 90K from a domain
borrow 132239.288652 from 10
borrow 537099.316089 from 0
borrow 148004.024941 from 7
borrow 139834.21573 from 9
borrow 117855.794876 from 8
and then we fail when a domain does not provide this lousy 90KB.

The solution is to ask for actual_need+XEN_FREE_MEM_LEFT, but return if we already
have actual_need+XEN_FREE_MEM_MIN (the latter is 25MB smaller).
2011-04-05 10:52:53 +02:00
..
aux-tools Check if template_vm is set when recreating config files (#131) 2011-03-24 21:44:07 -04:00
clipboard_notifier Initial public commit. 2010-04-05 20:58:57 +02:00
icons Added qubes.png icon 2010-05-07 16:06:38 +02:00
init.d Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/marmarek/core into spring-merge 2011-03-31 09:44:30 +02:00
pm-utils Stop only NM on suspend. (#146) 2011-03-31 00:19:41 +02:00
qmemman qmemman: handle requests for small pieces correctly 2011-04-05 10:52:53 +02:00
qvm-core If the firewall rules file does not exist, assume ALLOW (#188) 2011-04-04 17:07:46 +02:00
qvm-tools Revert "Start qrexec daemon when VM is running (but qrexec not)" 2011-04-04 09:35:48 +02:00
restore Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/marmarek/core 2011-04-04 09:33:31 +02:00
qubes.repo Make qubes-testing repos disabled by default 2010-07-06 16:35:10 +02:00