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