[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] Re: [Xen-devel] Xen - Guest memory allocation
> 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(); The bit widths are not the (main) problem! I don't think that patching populate_physmap is the right approach. You do need 'real' memory to be assigned to DomU. You can then allow DomU to use specific ranges of IO memory using XEN_DOMCTL_iomem_permission. Have a look how tools do it, when assigning a PCI device to a DomU: tools/python/xen/xend/server/pciif.py Cheers Gr(z)egor(z) > > 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. >> >> > >> > `   ; } >> > /*************** >> > } >> > 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 > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |