WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: "dinesh chandrasekaran" <dinesh_chan8@xxxxxxxxxxx>
Subject: Re: [Xen-users] Re: [Xen-devel] Xen - Guest memory allocation
From: "Grzegorz Miłoś" <gm281@xxxxxxxxx>
Date: Mon, 30 Jun 2008 13:52:26 +0100
Cc: xen developers community <xen-devel@xxxxxxxxxxxxxxxxxxx>, xen users community <xen-users@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 30 Jun 2008 05:52:54 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references :x-google-sender-auth; bh=TS3Td4Myb1v1xU0mvvl/rRkzJcdFHh8MuGqtndXgALE=; b=ZgyVF3Ry78Qt7y5CcbvNWg7WeKLgcAPTBknsYBs9JlXyTIr09e+T5tSYfp/P4kfZdf uct1UqzCShaRJ77P+nsFFDI603Zadm8FCZCOK2uxSULOTeTknJn/Bo6DM1eiaETGjwKZ FtB1XrtZdUuUzbyj+xMrBweOfzDcgwYaIPyM8=
Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=u4U2Iy8Ky854FJCHcEQjtJNgFE1qDudAqYpG7U+DrAD0Vr1SwflMCyQaKhLdKaR4RA v8eZ7xhTuik7nnhLN6ODc9Es5cv/gCChVSfT94WVAQ428bYuBGIiGqdgjNbx3V7hOhWC dOXLbmd8KQwYsocIi7k3RqvSqbcxZ93oRBeMs=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <BAY111-W34109E5CFAADFF371591D5B19C0@xxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <BAY111-W34109E5CFAADFF371591D5B19C0@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> 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.
>>
>> >
>> > ` &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
>
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel