[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] Re: [Xen-devel] Xen - Guest memory allocation




yeah by maddr_pci, I mean the machine address of the memory behind PCI device
found by using pci_conf_read(my_pci, PCI_SIZE, PCI-BASE_ADDRESS_0) where
PCI_SIZE = 256MB.

unsigned long maddr = 0xdf000000;

> > maddr_pci = ((maddr + PAGE_SIZE-1) &PAGE_MASK); //// THIS IS WRONG

Im sorry.
it is,

maddr = ((maddr + PAGE_SIZE-1) &PAGE_MASK);

Yes, about the I/O pages,
my machine uses 36-bit physical addresses,
since PCI address are all 32-bit, Im facing difficulties in converting these addresses into pages using maddr_to_page();

So, I have to use a 64-bit PCI device.

Thanks Milos,
Dinesh C


> Date: Sat, 28 Jun 2008 16:50:48 +0100
> From: gm281@xxxxxxxxx
> To: dinesh_chan8@xxxxxxxxxxx
> Subject: Re: [Xen-users] Re: [Xen-devel] Xen - Guest memory allocation
> CC: xen-devel@xxxxxxxxxxxxxxxxxxx; xen-users@xxxxxxxxxxxxxxxxxxx; derek.murray@xxxxxxxxxxxx
>
> > Hi,
> >
> > if I use the following inside the populate_physmap() inside
> > xen/common/memory.c,
> >
> > unsigned long maddr_pci = 0xdf000000; //since I know the machine
> > address of the mememory behind my pci device <xm dmesg>
> >
> > static void populate_physmap(struct memop_args *a)
> > {
> > /******
> >
> > for(i=a->nr_done; i<a->nr_extents; i++)
> > {
> > /*************
> > &nb sp; if(d->is_privilaged)
> >
> > page = alloc_domheap_pages(d, a->extent_order, a->memflags |
> > MEMF_node(node));
> > else
> > {
> > page = maddr_to_page(maddr_pci);
>
> This is going to assign DomU IO pages _only_.
>
> > maddr_pci = ((maddr + PAGE_SIZE-1) &PAGE_MASK);
>
> What is maddr here? Did you mean maddr_pci? Also, (page_aligned_x +
> PAGE_SIZE - 1) & PAGE_MASK = page_aligned_x, in other words you are
> stuck on the same page.
>
> >
> > ` &nbsp ; }
> > /***************
> > }
> > printk('a->nr_done: %lx', a->nr_done);
> > }
> >
> > The printk says 'a->nr_done: 2000' when 'xm dmesg' is used (which is correct
> > since I allocated 32MB for DomU = 8192 pages = 0x2000)
> >
> > but exits with the following error:
> >
> > & n bsp; 'dmesg' says : Using config file
> > '/home/guest/Guest.conf'.
> > Error: (1, 'Internal error', 'xc_dom_boot_domU_map:
> > failed to mmap domU pages 0x200+0x2e3 [xenctl, rc=-1]\n'
> >
> > 'xm dmesg' says: <G><1>mm.c:671:d0 Non-privileged (1) attempt
> > to map I/O space 000df1ff
>
> Dom0 tried map DomU memory in order to load the kernel + other boot
> info. This fails because you've only allocated IO pages to DomU.
>
> Cheers
> Gr(z)egor(z)


Live.in : Get your yourname@xxxxxxx email id today. Powered by Windows Live Hotmail. Check it out!


WL Messenger : Stay connected to friends and family with the New Windows Live Messenger. Get it now. Try it now!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.