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 > Xenfirstname.lastname@example.org > http://lists.xensource.com/xen-ia64-devel > -- yamahata _______________________________________________ Xen-ia64-devel mailing list Xenemail@example.com http://lists.xensource.com/xen-ia64-devel