Go to file
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
appvm commonvm: Update repo info, use local RPM keys 2011-04-04 11:27:48 +02:00
common commonvm: Update repo info, use local RPM keys 2011-04-04 11:27:48 +02:00
dom0 qmemman: handle requests for small pieces correctly 2011-04-05 10:52:53 +02:00
netvm Move execution of qrexec_agent to qubes_core 2011-03-23 11:34:01 +01:00
proxyvm Propagate qubes_netvm_external_ip up in ProxyVM. #116 2011-03-26 11:33:04 +01:00
qrexec qrexec_daemon: print dots when waiting for agent 2011-03-31 11:23:44 +02:00
rpm_spec commonvm: Update repo info, use local RPM keys 2011-04-04 11:27:48 +02:00
u2mfn gitignores 2011-03-23 19:57:48 -04:00
vchan gitignores 2011-03-23 19:57:48 -04:00
.gitignore gitignore files - add build products 2011-03-06 14:06:24 +01:00
LICENSE Added LICENSE 2010-04-05 21:21:27 +02:00
Makefile Fix rpm signing in Makefile 2011-04-04 11:27:51 +02:00
version_dom0 version 1.5.7 2011-04-04 09:40:53 +02:00
version_vm version 1.5.8-vm 2011-04-04 11:27:51 +02:00