dom0: check RLIMIT_MEMLOCK before starting VM (and fix if possible)

This commit is contained in:
Marek Marczykowski 2011-06-06 01:17:28 +02:00
parent d3e6e3dec0
commit 5ebd163fd3

View File

@ -31,6 +31,7 @@ import re
import shutil
import uuid
import time
import resource
from datetime import datetime
from qmemman_client import QMemmanClient
@ -868,6 +869,14 @@ class QubesVm(object):
if verbose:
print "--> Loading the VM (type = {0})...".format(self.type)
limit_memlock = resource.getrlimit(resource.RLIMIT_MEMLOCK)
# try to increase limit if needed
if limit_memlock[0] < int(self.memory) * 1024:
# intentionally don't catch exceptions - if it fails - there is no
# memory for new VM
resource.setrlimit(resource.RLIMIT_MEMLOCK,
(int(self.memory) * 1024, limit_memlock[1]))
mem_required = int(self.memory) * 1024 * 1024
qmemman_client = QMemmanClient()
if not qmemman_client.request_memory(mem_required):