On Thu, 2011-11-10 at 08:18 +0000, Daniel Castro wrote:
> On Thu, Nov 10, 2011 at 5:02 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> > On Thu, 2011-11-10 at 05:46 +0000, Daniel Castro wrote:
> >> Hello,
> >> I to issue a grant on a page, but only partially.
> >> I have a pointer to somewhere in memory and need to issue the grant
> >> for such a pointer but not to the entire page.
> >> I know FLAG GTF_sub_page is used for that purpose but grant_entry_v1
> >> apparently has no fields for sub_page, should I change the code to use
> >> Version 2 grant table entries?
> >
> > sub page grants are a feature of v2 grant tables only, they also require
> > you to make copy only grants (since you cannot enforce the subpage
> > aspect for a mapped grant).
> >
> > Using v2 grant tables here has a few issues.
> >
> > Firstly it is hard (if not impossible) to go back to v1 after switching
> > to v2 which presents a problem for the eventual guest OS (this could
> > probably be solved by suitable hypervisor modifications).
> >
> > Secondly the otherend needs to be using copy grants and not mapping
> > grants. This generally would require some sort of protocol negotiation
> > via xenstore (i.e. netback would generally use mapping by default for
> > guest-TX pages).
> >
> > I think you are better off either copying your subpage data into an
> > isolated page of its own (or maybe you can arrange for this to be true
> > of the original data) or deciding that you are happy to expose the rest
> > of the original page to the backend domain. Whether this second option
> > is safe or not depends on what is there, a read-only grant might provide
> > some more assurances here, depending on what the data actually is etc.
> Ian, the problems I see are:
> 1. I have no idea what the size of the transfer will be, it could be
> several pages.
> 2. I do not know where the pointer that indicates the buffer points
> at, meaning that I have no idea what else will be there.
> 3. I do not know id the buffer pointer is page aligned.
> If I stick to the current code, where I do not use DMA directly,
> instead the backend does the DMA to my private buffer and I manually
> copy to the guest buffer. Does that extra copy is worth the trouble to
> do v2 grants?
In the context of SeaBIOS I don't think the copy matters too much.
Unless/until benchmarking shows otherwise I'd be inclined not to worry
about it.
Ian.
>
> Daniel
> >
> > Ian.
> >
> >
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|