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

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



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


 


Rackspace

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