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-ia64-devel

Re: [Xen-ia64-devel] Notes about driver domains

To: Tristan Gingold <Tristan.Gingold@xxxxxxxx>
Subject: Re: [Xen-ia64-devel] Notes about driver domains
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Wed, 26 Jul 2006 10:56:22 +0900
Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 25 Jul 2006 18:56:32 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <200607250859.47593.Tristan.Gingold@xxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <200607250859.47593.Tristan.Gingold@xxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
Hi Tristan.

You already noticed the followings though.


On Tue, Jul 25, 2006 at 08:59:47AM +0200, Tristan Gingold wrote:

> * Memory attributes have to be handled (if you want to avoid mca!).  The 
> current method (dom0 uses its attribute, domU always use WB) doesn't work 
> anymore.  Xen has to merge domain attributes with MADT attributes.

Probably introduce new pte flag and check it in translate_domain_pte()
would work. See the comment on memory mapped IO pages.


> * Currently any domain can do ioremap.  Access checks have to be done.

When I worked on dom0 vp model, I wanted to keep the modification of
linux ioremap() as small as possible.
So I made the requirement that pseudo physical address == machine address
on I/O area. 
assign_domain_mmio_page(), assign_domain_mach_page() realize it.
It is acceptable and appropriate for dom0.
But I don't know about driver domains.

- require p=m on I/O area like dom0.
- don't require p=m on I/O area and paravirtualize Linux
  ioremap(),iounmap() more.
- other

> * IO port entry should be added in the MADT of every domain.  Access checks 
> have to be performed.  I don't know wether we should use a per page control, 
> a global control (yes/no) or a per port control (slow!).  Disabled port 
> should either crash the domain or be silently rejected.  This issue has 
> already been discussed and silent rejection was agreed.

Probably we may want to use rangeset (xen/common/rangeset.c).


> * memory mapped IO pages should belongs to dom_io pseudo-domain.  At least 
> work is required here to avoid crash when a domain is destroyed.

With CONFIG_VIRTUAL_FRAME_TABLE enabled (this is default),
struct page_info correspanding to I/O area might not be allocated.
It is the reason why assign_domain_mmio_page() and
assign_domain_mmio_page() doesn't increase reference count.

These are just ideas when I modified those functions.
- allocate struct page_info dynamically and make dom_io owns them
  when they become necessary.
- go without struct page_info. introduce new pte flag to indicate
  that it is I/O page and there is no corresponding struct page_info.
  Probably this requires adding check whether this pte is for I/O
  before converting pte to struct page_info
- other


> At this time I was able to see an ethernet card in a domU.

Very nice!

-- 
yamahata

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

<Prev in Thread] Current Thread [Next in Thread>