um: Report host OOM more nicely

If UML runs on the host side out of memory, report this
condition more nicely.

Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
Richard Weinberger 2015-10-25 22:26:09 +01:00
parent 1b2411c283
commit 70c8205f40

View File

@ -50,6 +50,13 @@ struct host_vm_change {
.index = 0, \ .index = 0, \
.force = force }) .force = force })
static void report_enomem(void)
{
printk(KERN_ERR "UML ran out of memory on the host side! "
"This can happen due to a memory limitation or "
"vm.max_map_count has been reached.\n");
}
static int do_ops(struct host_vm_change *hvc, int end, static int do_ops(struct host_vm_change *hvc, int end,
int finished) int finished)
{ {
@ -81,6 +88,9 @@ static int do_ops(struct host_vm_change *hvc, int end,
} }
} }
if (ret == -ENOMEM)
report_enomem();
return ret; return ret;
} }
@ -433,8 +443,12 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long address)
else if (pte_newprot(*pte)) else if (pte_newprot(*pte))
err = protect(mm_id, address, PAGE_SIZE, prot, 1, &flush); err = protect(mm_id, address, PAGE_SIZE, prot, 1, &flush);
if (err) if (err) {
if (err == -ENOMEM)
report_enomem();
goto kill; goto kill;
}
*pte = pte_mkuptodate(*pte); *pte = pte_mkuptodate(*pte);