|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [DOC v3] Xen transport for 9pfs
On Fri, 27 Jan 2017, Konrad Rzeszutek Wilk wrote:
> > >
> > > ## Ring Setup
> > >
> > > The shared page has the following layout:
> > >
> > > typedef uint32_t XEN_9PFS_RING_IDX;
> > >
> > > struct xen_9pfs_intf {
> > > XEN_9PFS_RING_IDX in_cons, in_prod, in_event;
> > > XEN_9PFS_RING_IDX out_cons, out_prod, out_event;
> > >
> > > uint32_t ring_order;
> > > /* this is an array of (1 << ring_order) elements */
> > > grant_ref_t ref[1];
> > > };
> >
> > Could you explain why DEFINE_RING_TYPES would not work?
They cannot work because they require fixed length messages.
> > Could you explain more what '[in|out]_event' ?
I'll write more about them in reply to your other email, but they are
just an optimization to remove unnecessary event notifications. In fact
the first version I sent didn't have them
(http://marc.info/?l=xen-devel&m=148046256107032).
> > Also would it be possible to re-organize this structure
> > so there are no cache bounces?
I'll separate in and out indexes.
> This, along with a similar layout in the PV Calls got me thinking.
>
> Why aren't you using the standard old fashioned DEFINE_RING_TYPES.
They only work with fixed length messages.
> And if there is something wrong with it - why not use something
> that has been tried and true. Like the VirtIO available and used
> ring? That has the idea of 'avail_even't as an index.
>
> And also it provides two nice pages where one is written by
> the frontend while the other by the backend. Which nicely
> takes into account cache bounces.
This is something that has been tried and true: it is based on the Xen
console ring with only few modifications. See
xen/include/public/io/console.h. The [in|out]_event things are optional
optimizations.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |