|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] dom0less boot two compressed kernel images out-of-memory work-around
Hello,
When trying to boot two zImage using dom0less boot on ARM, we encountered this
problem when xen runs gunzip on second guest:
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Out of memory
(XEN) ****************************************
And worked around it with the following patch. We'd like to check to see if
this is a known issue and if the work-around looks reasonable. Thank you
diff --git a/xen/common/gunzip.c b/xen/common/gunzip.c
index db4efcd34b..e5bd19ba7f 100644
--- a/xen/common/gunzip.c
+++ b/xen/common/gunzip.c
@@ -113,8 +113,10 @@ __init int perform_gunzip(char *output, char *image,
unsigned long image_len)
window = (unsigned char *)output;
+ if (!free_mem_ptr) {
free_mem_ptr = (unsigned long)alloc_xenheap_pages(HEAPORDER, 0);
free_mem_end_ptr = free_mem_ptr + (PAGE_SIZE << HEAPORDER);
+ }
inbuf = (unsigned char *)image;
insize = image_len;
@@ -131,7 +133,12 @@ __init int perform_gunzip(char *output, char *image,
unsigned long image_len)
rc = 0;
}
+ if (free_mem_ptr) {
free_xenheap_pages((void *)free_mem_ptr, HEAPORDER);
+ free_mem_ptr = 0;
+ }
+
+ bytes_out = 0;
return rc;
}
diff --git a/xen/common/inflate.c b/xen/common/inflate.c
index f99c985d61..de96002188 100644
--- a/xen/common/inflate.c
+++ b/xen/common/inflate.c
@@ -244,7 +244,7 @@ static void *INIT malloc(int size)
if (size < 0)
error("Malloc error");
- if (!malloc_ptr)
+ if ((!malloc_ptr) || (!malloc_count))
malloc_ptr = free_mem_ptr;
malloc_ptr = (malloc_ptr + 3) & ~3; /* Align */
--
Charles Chiou
NOTE: This email (including attachments) contain Ambarella Proprietary and/or
Confidential Information and is intended solely for the use of the
individual(s) to whom it is addressed. Any unauthorized review, use,
disclosure, distribute, copy, or print is prohibited. If you are not an
intended recipient, please contact the sender by reply email and destroy all
copies of the original message. Thank you.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |