Rafal Wojtczuk
c0656720ab
DVM: if needed, qfileexchgd will recreate DVM savefile
...
It would be nice to have some progress notification, as dvm setup is
slow.
2010-09-21 22:23:38 +02:00
Rafal Wojtczuk
e13e5027c3
qubes_dvm init.d script
...
We want to set up a default dvm if needed at boot time; for this,
the default netvm must have been already started. Therefore, we
need a qubes_dvm script, that executes after qubes_netvm.
2010-09-21 21:46:11 +02:00
Rafal Wojtczuk
c22a6ebb84
DVM: make qvm-get-default-template use the default template, if asked
...
Via options --default-template and --default-script
2010-09-21 18:40:15 +02:00
Rafal Wojtczuk
c0cac005ec
Tiny logging fix in qfileexchgd
...
...that is impossible to happen, naturally.
2010-09-21 16:00:40 +02:00
Rafal Wojtczuk
ca1122cd6a
Add QubesDisposableVm and use class
2010-09-21 15:59:22 +02:00
Rafal Wojtczuk
6afdffa96f
qvm-dom0-network-via-netvm script (ticket #20 )
2010-09-21 13:36:46 +02:00
Joanna Rutkowska
4e7ce5f90c
qubes.py: another small fix to QubesHost :)
2010-09-16 20:11:35 +02:00
Joanna Rutkowska
8292c25713
Merge branch 'qmemman' of git://qubes-os.org/rafal/core
2010-09-16 20:01:40 +02:00
Joanna Rutkowska
157a18c244
qubes.py: a small fix to QubesHost
2010-09-16 18:47:05 +02:00
Joanna Rutkowska
268789fc4c
dom0/qvm-core/qubes.py: added QubesHost class
2010-09-16 17:52:52 +02:00
Rafal Wojtczuk
c411519220
qmemman: do not trim the mem-set value too much
...
We used to mem-set the domain to 0.995*calculated_value; 5 promils of 4GB
is ca 19MB, and it is too visible. Use 0.999 instead of 0.995
2010-09-16 16:40:09 +02:00
Rafal Wojtczuk
eea01fba3b
qmemman: in is_balance_req_significant(), account for Xen free memory
2010-09-16 16:00:07 +02:00
Rafal Wojtczuk
e476531b0e
Leave XEN_FREE_MEM_LEFT of Xen free memory.
...
Needed for driver domain, to be able to get contiguous memory for
its drivers.
2010-09-16 15:57:11 +02:00
Joanna Rutkowska
0f1700ef3d
Merge branch 'comment1' of git://qubes-os.org/rafal/core
...
Conflicts:
dom0/restore/qubes_restore.c
2010-09-16 15:55:35 +02:00
Joanna Rutkowska
70f8a7401c
Make 'make clean' clean all the object files
2010-09-15 15:36:04 +02:00
Joanna Rutkowska
9b8c018bc2
Merge branch 'qmemman' of git://qubes-os.org/rafal/core
2010-09-13 15:05:13 +02:00
Rafal Wojtczuk
0c1f21a28e
qmemman: when a AppVM is low on memory, allow small adjustments
...
A small AppVM (say, with 100MB total) can go below prefmem, and
still not be assigned memory, because of the MIN_TOTAL_MEMORY_TRANSFER
threshold.
So, if AppVM is below prefmem, allow for smaller mem-sets.
2010-09-10 11:35:30 +02:00
Rafal Wojtczuk
f6e3607d2d
qmemman: offload some processing to meminfo-writer
...
Make meminfo-writer compute used memory, and report to qmemman only if
it has changed significantly enough. As it is written in C, its code is
much faster that qmemman-server; also in the idle case, it saves on xenstore
communication overhead. Allows to send updates up to 10 times per second,
with CPU load on the VM below 0.1%.
2010-09-09 17:51:53 +02:00
Rafal Wojtczuk
51e14fc8bb
qmemman: trigger do_balance() on receiving /proc/meminfo data
2010-09-09 12:36:18 +02:00
Rafal Wojtczuk
f4e46b63a4
qmemman: in client code, set FD_CLOEXEC on qmmemman.socket
2010-09-09 12:33:48 +02:00
Rafal Wojtczuk
7545789a26
qmemman: now parse_meminfo takes a single argument
2010-09-09 11:30:02 +02:00
Rafal Wojtczuk
9c609a23bf
qmemman: move /proc/meminfo parsing to qmemman_algo
...
Just cosmetics, to make code layout more coherent.
2010-09-09 11:24:04 +02:00
Rafal Wojtczuk
24b3baf063
qmemman: use 'Memtotal' from /proc/meminfo to calculate used memory
...
Previously, memory_actual (retrieved from xen) was used; it can be inconsistent.
'Memtotal' can be spoofed, but anyway we rely on other fields from /proc/meminfo.
2010-09-09 11:08:20 +02:00
Rafal Wojtczuk
5a33ed71ce
qmemman: use the fact that balloon driver retries
...
Apparently even if there is not enough xen memory to balloon up,
balloon driver will try to fulfill the request later, when
some memory is freed. Thus, in do_balloon, do not limit mem_set
to the available memory.
2010-09-09 10:36:13 +02:00
Rafal Wojtczuk
87d1e973c7
qmemman: print balance stats only when updating
2010-09-09 10:29:35 +02:00
Rafal Wojtczuk
8d377d19dc
DVM: added missing fix_savefile_all
2010-09-07 17:45:52 +02:00
Rafal Wojtczuk
6472e8c926
DVM: fix savefile to contain ip address
...
needed for routed networking
2010-09-07 17:36:28 +02:00
Rafal Wojtczuk
2dd9bab23a
DVM: add --dvm option to qvm-start
...
Currently it only forces to use a fake IP address, which can be
replaced during restore time.
2010-09-07 16:15:24 +02:00
Rafal Wojtczuk
5be12f8459
qmemman: switch off memory balancing when doing xm save
...
Apparently, it interferes:
INFO (XendCheckpoint:417) ERROR Internal error: Could not get vcpu context
INFO (XendCheckpoint:417) ERROR Internal error: Failed to map/save the p2m frame list
2010-09-07 16:00:14 +02:00
Rafal Wojtczuk
11abef3439
qmemman: xc.domain_set_target_mem can throw exceptions, too
2010-09-07 13:10:48 +02:00
Rafal Wojtczuk
a013973806
Use vif-route-qubes.
2010-09-06 17:24:12 +02:00
Rafal Wojtczuk
31e7e96056
Switch to routed VM network (instead of bridging)
...
No headache from layer 2 attacks.
2010-09-06 17:07:42 +02:00
Rafal Wojtczuk
64e8013dc2
Unify dom0 and netvm sysconfig/iptables
...
Plus:
- dedicated chain for DNAT to nameservers
- prevent intervm networking. Can be conveniently overriden in necessary cases
by inserting ACCEPT clauses (per VM, probably) at the top of FORWARD
2010-09-06 15:10:01 +02:00
Rafal Wojtczuk
22df517425
qmemman: detect domain list change by watching /vm, not /local/domain
...
The latter triggers on every memory/meminfo key update, which needlessly
adds xenstore requests.
2010-09-06 10:46:36 +02:00
Rafal Wojtczuk
7dcb7cb196
qmemman: don't use xenapi, use hypercalls to do mem-set
2010-09-03 16:19:48 +02:00
Rafal Wojtczuk
10408d61db
qmemman: when low on memory, do not make a VM go below prefmem
...
Now the balance() has two different cases: enough memory and low_on_memory.
In the former, distribute memory proportianally; in the former, dont do this, as this
makes a VM go below prefmem.
2010-09-01 12:40:02 +02:00
Rafal Wojtczuk
80771763cf
qmemman: limit total memory transfer, not each one
2010-09-01 10:39:39 +02:00
Rafal Wojtczuk
c66e0848f3
qmemman: limit domain memory to 2G to workaround for xen xml-rpc limitation
...
File "/usr/lib64/python2.6/xmlrpclib.py", line 710, in dump_int
raise OverflowError, "int exceeds XML-RPC limits"
OverflowError: int exceeds XML-RPC limits
How crappy.
2010-08-31 16:19:01 +02:00
Rafal Wojtczuk
de2619fbed
qmemman: wrap xenapi.memset within try/except
...
It can fail e.g. when a domain is being shutdown with a pretty
message like
File "/usr/lib64/python2.6/site-packages/xen/xend/XendDomainInfo.py", line 1322, in setMemoryTarget
(target * 1024))
Error: (1, 'Operation not permitted')
2010-08-31 15:53:24 +02:00
Rafal Wojtczuk
eb6755e93c
qmemman: fix locking
...
We want balance() to wait on a lock even after balloon() has finished,
until socket client has closed.
2010-08-30 14:50:48 +02:00
Rafal Wojtczuk
2eba4c1c15
I will test before commit. I will test before commit. I will...
2010-08-30 12:01:42 +02:00
Rafal Wojtczuk
f3561b7aad
Fix restore completion detection in appvm/qubes_core
2010-08-30 11:43:30 +02:00
Rafal Wojtczuk
62487c0f1e
Memory management across VMs, first release
2010-08-30 11:40:19 +02:00
Rafal Wojtczuk
8a022d7904
core.git/dom0/pendrive_swapper/README
2010-08-03 09:03:32 +02:00
Rafal Wojtczuk
cee9d6b4d6
Added comments to nonobvious code fragments
2010-08-03 07:12:59 +02:00
Joanna Rutkowska
4d26334709
dom0/init.d/qubes_core: set Dom0 mem to 1600M
2010-07-30 16:00:18 +02:00
Joanna Rutkowska
557984f4b9
minor ident fixes
2010-07-30 15:59:43 +02:00
Rafal Wojtczuk
4cf0a61858
Before restoring DVM, check for available xen memory
...
As we already do xm mem-set 0 800 in qubes_core, this is a
correct check. Now, there should be no errors from qubes_restore
in normal circumstances.
2010-07-27 16:08:09 +02:00
Joanna Rutkowska
3856f7cdbd
qvm-create-default-dvm: use gray label for dvm-template (be consitent with VM template label)
2010-07-27 12:47:18 +02:00
Rafal Wojtczuk
b578aab5d5
qubes_prepare_saved_domain.sh: Check exit code of xm save
2010-07-21 12:57:02 +02:00