On Mon, Oct 20, 2008 at 02:49:57PM +0800, Xu, Anthony wrote:
> Isaku Yamahata wrote:
> > On Fri, Oct 17, 2008 at 05:36:58PM +0800, Xu, Anthony wrote:
> >
> > It's correct that xen VMM doesn't fully understand io area.
> > However the VMM know all about RAM.
> 
> Thanks for your explanation, see my comment.
> 
> >
> > So far !mfn_valid() has sufficed for the current implementation
> > in order to detect IO area.
> > However you are going to into the case which needs more precise
> > detection. But what we want is the way to detect whether
> > the page is NOT conventional memory. Not io area.
> > There are three (or four) cases
> >
> > - !mfn_valid() case
> >   This means that there isn't a corresponding struct page_info.
> >   So we just skip reference counting over this type.
> 
> Mfn_valid maybe not precise.
> One page can accommodate several page_info.
> page_infos in the same page have different status, some page_infos refer to 
> normal memory.
> Other page_infos are supposed not to exist, due to they are in the same page, 
> probe in function ia64_frametable_probe succeeds.
> Is it possible?

Yes, in theory. The above is exactly what I have in mind.


> > - mfn_valid() case
> >   - no ram
> >     I suppose this is the case you want to address.
> >     In this case, the corresponding struct page_info can
> >     be owned by DOMID_IO.
> >     This case needs to be addressed.
> 
> Does mfn_vaild return true for MMIO now?

In theory, yes in general as you described above.
In practice, it depends on efi memory map, how init_frametable()
is implemented and PAGE_SIZE.

To be honest I'm not sure whether such a case exists or not in practice.
(note:with CONFIG_VIRTUAL_FRAME_TABLE=n and enough memory,
 such a case exists.)
But by the fact that you tried to add the new bit, PAGE_DIRECT_IO,
I had thought that you had encountered such a case.

Probably it is a safer way to implement a more precise function
for this purpose.

thanks,

> If it return faule for MMIO,
> We can use mfn_valid for VTD, means DOMID_IO is not used so far.
> 
> Thanks,
> Anthony
> 
> 
> 
> >
> >   - RAM
> >     - conventional memory (EFI_MEMORY_CONVENTIONAL)
> >       This case was already handled by the current implementation.
> >
> >     - other type RAM
> >       I'm not sure whether this case matters.
> >       If it matters, we can handle this case as same as no ram case.
> >
> >
> > thanks,
> 
> _______________________________________________
> Xen-ia64-devel mailing list
> Xen-ia64-devel@lists.xensource.com
> http://lists.xensource.com/xen-ia64-devel
> 

-- 
yamahata

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

Reply via email to