Displaying 20 results from an estimated 23 matches for "alloc_domheap_page".
Did you mean:
alloc_domheap_pages
2012 Mar 15
3
[PATCH] arm: allocate top level p2m page for all non-idle VCPUs
...o.ram_start, kinfo.ram_end);
diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index 051a0e8..4f624d8 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -203,7 +203,7 @@ int p2m_alloc_table(struct domain *d)
void *p;
/* First level P2M is 2 consecutive pages */
- page = alloc_domheap_pages(d, 1, 0);
+ page = alloc_domheap_pages(NULL, 1, 0);
if ( page == NULL )
return -ENOMEM;
--
1.7.2.5
2008 Aug 12
4
Not enough RAM for domain 0 allocation.
Hi all,
I have been trying to use Xen with a diskless workstation.
My system has 3G of RAM. I have built a ramdisk (whose size is 450M) and
I''m trying to load everything in memory (Xen,Dom0 and the ramdisk).
In the file arch/x86/domain_build.c the function alloc_domheap_pages
is invoked page=alloc_domheap_pages(d,order,MEMF_bit(30); // in my case
order =17
This function returns a NULL pointer, which generates the error "Not enough
RAM for domain 0 allocation"
It seems that if the total size of hypervisor+dom0+ramdisk is less than 256M
everything works, if i...
2006 Sep 29
0
[PATCH 2/6] xen: add per-node bucks to page allocator
...igned int o
int i;
local_irq_save(flags);
- pg = alloc_heap_pages(MEMZONE_XEN, order);
+ pg = alloc_heap_pages(MEMZONE_XEN, smp_processor_id(), order);
local_irq_restore(flags);
if ( unlikely(pg == NULL) )
@@ -580,8 +637,9 @@ int assign_pages(
}
-struct page_info *alloc_domheap_pages(
- struct domain *d, unsigned int order, unsigned int memflags)
+struct page_info *__alloc_domheap_pages(
+ struct domain *d, unsigned int cpu, unsigned int order,
+ unsigned int memflags)
{
struct page_info *pg = NULL;
cpumask_t mask;
@@ -591,17 +649,17 @@ struct page_info *a...
2013 Nov 14
4
[PATCH] xen/arm: Allow balooning working with 1:1 memory mapping
...memop_args *a)
{
- struct page_info *page;
+ struct page_info *page = NULL;
unsigned long i, j;
xen_pfn_t gpfn, mfn;
struct domain *d = a->domain;
@@ -122,7 +125,33 @@ static void populate_physmap(struct memop_args *a)
}
else
{
- page = alloc_domheap_pages(d, a->extent_order, a->memflags);
+#ifdef CONFIG_ARM
+ if ( d == dom0 && platform_has_quirk(PLATFORM_QUIRK_DOM0_MAPPING_11) )
+ {
+ mfn = gpfn;
+ if (!mfn_valid(mfn))
+ {
+ gdprintk(XENLOG_INFO, &qu...
2011 Jan 28
3
Doubt regarding virtual memory mapping from hypervisor to a domain
Hi,
I have allocated few order=9 pages in Xen memory space using
alloc_domheap_pages(NULL,9,0) during boot time just before domain is
created (dom0 = domain_create(0, DOMCRF_s3_integrity, DOM0_SSIDREF) in
xen/arch/x86/setup.c).
I got the following virtual addresses in xen log message-
(XEN) a2k2: Virt_addr:ffff83011cc00000 MFN:11cc00
(XEN) a2k2: Virt_addr:ffff83011ca00000 MFN...
2005 Sep 05
0
[PATCH][4/6] Add to virtual device operations
...fn_to_mfn(d, gva >> PAGE_SHIFT);
+ mpl2e = current->arch.monitor_vtable;
+ if ( mpl2e[l2_table_offset(hva)].l2 ){
+ printk("map of hva 0x%lx already exists\n",hva);
+ return -1;
+ }
+
+ /* alloc l1 page table */
+ d->max_pages++;
+ l1_mfn_info = alloc_domheap_page(d);
+ if (!l1_mfn_info){
+ printk("alloc_domheap_page failed\n");
+ return -1;
+ }
+ l1_mfn = page_to_pfn(l1_mfn_info);
+ printk("map_param_share_page: alloc page at 0x%lx\n", l1_mfn);
+
+ /* set l2 page table entry */
+ mpl2e[l2_table_offset(hva)...
2012 Oct 11
14
alloc_heap_pages is low efficient with more CPUs
I am confused with a problem:
I have a blade with 64 physical CPUs and 64G physical RAM, and defined only one VM with 1 CPU and 40G RAM.
For the first time I started the VM, it just took 3s, But for the second starting it took 30s.
After studied it by printing log, I have located a place in the hypervisor where cost too much time,
occupied 98% of the whole starting time.
xen/common/page_alloc.c
2008 Nov 18
6
[PATCH] fix memory allocation from NUMA node for VT-d.
...#include "../dmar.h"
#include "../vtd.h"
@@ -37,13 +38,21 @@
}
/* Allocate page table, return its machine address */
-u64 alloc_pgtable_maddr(void)
+u64 alloc_pgtable_maddr(struct domain *d)
{
struct page_info *pg;
u64 *vaddr;
unsigned long mfn;
- pg = alloc_domheap_page(NULL, 0);
+ if (d == NULL)
+ {
+ pg = alloc_domheap_page(NULL, 0);
+ }
+ else
+ {
+ pg = alloc_domheap_page(NULL, MEMF_node(domain_to_node(d)));
+ }
+
if ( !pg )
return 0;
mfn = page_to_mfn(pg);
_______________________________________________
Xen...
2011 Sep 23
2
Some problems about xenpaging
...-675,6 +675,23 @@
BUG_ON(p2md->pod.entry_count < 0);
pod--;
}
+ else if ( steal_for_cache && p2m_is_paging(t) )
+ {
+ struct page_info *page;
+ /* alloc a new page to compensate the pod list */
+ page = alloc_domheap_page(d, 0);
+ if ( unlikely(page == NULL) )
+ {
+ goto out_entry_check;
+ }
+ set_p2m_entry(d, gpfn + i, _mfn(INVALID_MFN), 0, p2m_invalid);
+ p2m_mem_paging_drop_page(d, gpfn+i);
+ p2m_pod_cache_add(d, page, 0);
+...
2013 Oct 30
4
Re: Issue with ARM: Network doesn't work in the guest
2013/10/29, mail fetch <fetchmail.0104@gmail.com>:
> Hi all,
>
> I just saw a know bug from wiki that network doesn''t work in guest in
> arndale board :
>
> Network doesn''t work in the guest
>
> Contact: julien.grall@citrix.com
> Status: In progress
> Description: Network doesn''t work in the guest when an ehternet cable is
> plugged
2011 Mar 09
0
[PATCH 1/5] x86: don''t BUG() post-boot in alloc_xen_pagetable()
...ge();
- BUG_ON(v == NULL);
+
+ BUG_ON(!dom0 && !v);
return v;
}
--- 2011-03-09.orig/xen/arch/x86/x86_64/mm.c
+++ 2011-03-09/xen/arch/x86/x86_64/mm.c
@@ -84,8 +84,9 @@ void *alloc_xen_pagetable(void)
if ( !early_boot )
{
struct page_info *pg = alloc_domheap_page(NULL, 0);
- BUG_ON(pg == NULL);
- return page_to_virt(pg);
+
+ BUG_ON(!dom0 && !pg);
+ return pg ? page_to_virt(pg) : NULL;
}
mfn = alloc_boot_pages(1, 1);
@@ -100,6 +101,9 @@ l3_pgentry_t *virt_to_xen_l3e(unsigned l
if ( !(l4e_get_flags(*pl4e) &...
2013 Jan 21
6
[PATCH v3 0/4] nested vmx: enable VMCS shadowing feature
Changes from v2 to v3:
- Use pfn_to_paddr() to get the address from frame number instead of doing shift directly.
- Remove some unnecessary initialization code and add "static" to vmentry_fields and gpdptr_fields.
- Enable the VMREAD/VMWRITE bitmap only if nested hvm is enabled.
- Use clear_page() to set all 0 to the page instead of memset().
- Use domheap to allocate the
2013 Dec 06
36
[V6 PATCH 0/7]: PVH dom0....
Hi,
V6: The only change from V5 is in patch #6:
- changed comment to reflect autoxlate
- removed a redundant ASSERT
- reworked logic a bit so that get_page_from_gfn() is called with NULL
for p2m type as before. arm has ASSERT wanting it to be NULL.
Tim: patch 4 needs your approval.
Daniel: patch 5 needs your approval.
These patches implement PVH dom0.
Patches 1 and 2
2013 Nov 22
2
Question about the memory layout of xen hypervisor, dom0 and domU
...s). But it''s unclear which RAM
area is allocated.
I read the paravirtualised memory management on
http://wiki.xen.org/wiki/X86_Paravirtualised_Memory_Management; but it only
shows the virtual address range of each domain.
I also looked at the xen/common/page_alloc.c; I think the function
alloc_domheap_pages() is used to allocate machine pages to doms, and
alloc_xenheap_pages() is used to allocate machine pages to hypervisor.
Maybe I can just print out the machine address when each machine page is
allocated and freed. But it seems too nasty.
*My question is:
Is there any command or tool showing the...
2009 Jul 15
0
[PATCH] rename for_each_cpu() to for_each_possible_cpu()
...em_xen.c 2009-07-15 10:02:38.000000000 +0200
@@ -317,7 +317,7 @@ EXPORT int tmh_init(void)
dstmem_order = get_order_from_pages(LZO_DSTMEM_PAGES);
workmem_order = get_order_from_bytes(LZO1X_1_MEM_COMPRESS);
- for_each_cpu ( cpu )
+ for_each_possible_cpu ( cpu )
{
pi = alloc_domheap_pages(0,dstmem_order,0);
per_cpu(dstmem, cpu) = p1 = ((pi == NULL) ? NULL : page_to_virt(pi));
--- 2009-07-10.orig/xen/include/xen/cpumask.h 2009-05-27 13:54:07.000000000 +0200
+++ 2009-07-10/xen/include/xen/cpumask.h 2009-07-15 10:04:01.000000000 +0200
@@ -61,7 +61,7 @@
*
* int any_online_...
2013 Nov 25
22
[PATCH v3 00/13] xen: arm initial support for xgene arm64 platform
George has release acked all of these. Otherwise mostly minor updates
this time around.
Summary: A == acked, M == modified
A xen: arm64: Add 8250 earlyprintk support
A xen: arm64: Add Basic Platform support for APM X-Gene Storm.
A xen: arm64: Add APM implementor id to processor implementers.
M xen: arm: add a quirk to handle platforms with unusual GIC layout
A xen: arm: allow platform
2020 Jul 18
25
[PATCH 00/12] Bunch of patches for cross-compilatio + RP4
Initially out there as #965245.
I strongly prefer to build ARM64 packages on non-ARM systems. Something
about my main build machine having twice the cores and twice the clock
speed. As such after many builds I've managed to generate a set of
patches which appear to mostly function to get functioning cross-builds
of Xen.
These are NOT a 100% solution. Some packaging hacks were needed. In
2013 Nov 06
0
[PATCH v5 5/6] xen/arm: Implement hypercall for dirty page tracing
...tart, &gma_end);
+
+ nr_bytes = (PFN_DOWN(gma_end - gma_start) + 7) / 8;
+ nr_pages = (nr_bytes + PAGE_SIZE - 1) / PAGE_SIZE;
+
+ BUG_ON( nr_pages > MAX_DIRTY_BITMAP_PAGES );
+
+ for ( i = 0; i < nr_pages; ++i )
+ {
+ struct page_info *page;
+ page = alloc_domheap_page(NULL, 0);
+ if ( page == NULL )
+ goto cleanup_on_failure;
+
+ d->arch.dirty.bitmap[i] =
map_domain_page_global(__page_to_mfn(page));
+ clear_page(d->arch.dirty.bitmap[i]);
+ }
+
+ d->arch.dirty.bitmap_pages = nr_pages;
+ return 0;
+
+cle...
2012 Nov 15
1
[RFC/PATCH v4] XENMEM_claim_pages (subop of existing) hypercall
...unsigned long pages);
+int domain_set_unclaimed_pages(
+ struct domain *d, unsigned long pages, unsigned long flags);
+long get_total_unclaimed_pages(void);
+
/* Domain suballocator. These functions are *not* interrupt-safe.*/
void init_domheap_pages(paddr_t ps, paddr_t pe);
struct page_info *alloc_domheap_pages(
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 6c55039..480ef39 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -242,6 +242,7 @@ struct domain
struct page_list_head page_list; /* linked list */
struct page_list_head xenpage_list; /* linked li...
2013 Nov 20
54
[PATCH+RFC+HACK 00/16] xen: arm initial support for xgene arm64 platform
I''m afraid this series is rather a grab bag and it is distressingly
large at this stage. With this series I can boot an Xgene board until it
fails to find its SATA controller. This is a dom0 issue for which
patches are pending from APM (/me nudges Anup).
As well as the APM specific platform stuff there are also some generic
improvements which were either necessary or useful during this