All of lore.kernel.org
 help / color / mirror / Atom feed
* Why are I/O rings bidirectional?
@ 2005-02-07 22:59 McGroarty
  2005-02-07 23:00 ` Mark Williamson
  0 siblings, 1 reply; 4+ messages in thread
From: McGroarty @ 2005-02-07 22:59 UTC (permalink / raw)
  To: xen-devel

Hello. I am reading Xen and the Art of Virtualization. I am curious as
to why the async I/O ring buffers contain both requests and responses
in the same ring.

I have not seen this done before. Is it not more efficient to have one
ring for each direction? What is the benefit of the single ring?


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Why are I/O rings bidirectional?
  2005-02-07 22:59 Why are I/O rings bidirectional? McGroarty
@ 2005-02-07 23:00 ` Mark Williamson
  2005-02-07 23:52   ` Harry Butterworth
  0 siblings, 1 reply; 4+ messages in thread
From: Mark Williamson @ 2005-02-07 23:00 UTC (permalink / raw)
  To: xen-devel, McGroarty

> Hello. I am reading Xen and the Art of Virtualization. I am curious as
> to why the async I/O ring buffers contain both requests and responses
> in the same ring.

Requests contain details of the IO to be done.  Responses notify the domain 
when the IO is complete and whether it was successful or not.

Requests can complete out of order, so it's necessary to have response 
messages following back to the domain to tell it when each request is done.  
If the requests were always dealt with in order it would not be necessary to 
have responses flowing back, so the ring could be unidirectional.

The Safe Hardware Access paper has more details about the IO rings work.

HTH,
Mark


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Why are I/O rings bidirectional?
  2005-02-07 23:00 ` Mark Williamson
@ 2005-02-07 23:52   ` Harry Butterworth
  2005-02-08  1:52     ` Mark A. Williamson
  0 siblings, 1 reply; 4+ messages in thread
From: Harry Butterworth @ 2005-02-07 23:52 UTC (permalink / raw)
  To: Mark Williamson; +Cc: xen-devel, McGroarty

I think the intended question was "why have both requests and responses
in the same ring rather than have two rings, one for requests and one
for responses?"

On Mon, 2005-02-07 at 23:00 +0000, Mark Williamson wrote:
> > Hello. I am reading Xen and the Art of Virtualization. I am curious as
> > to why the async I/O ring buffers contain both requests and responses
> > in the same ring.
> 
> Requests contain details of the IO to be done.  Responses notify the domain 
> when the IO is complete and whether it was successful or not.
> 
> Requests can complete out of order, so it's necessary to have response 
> messages following back to the domain to tell it when each request is done.  
> If the requests were always dealt with in order it would not be necessary to 
> have responses flowing back, so the ring could be unidirectional.
> 
> The Safe Hardware Access paper has more details about the IO rings work.
> 
> HTH,
> Mark
> 
> 
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/xen-devel
-- 
Harry Butterworth <harry@hebutterworth.freeserve.co.uk>



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Why are I/O rings bidirectional?
  2005-02-07 23:52   ` Harry Butterworth
@ 2005-02-08  1:52     ` Mark A. Williamson
  0 siblings, 0 replies; 4+ messages in thread
From: Mark A. Williamson @ 2005-02-08  1:52 UTC (permalink / raw)
  To: Harry Butterworth; +Cc: xen-devel, McGroarty

> I think the intended question was "why have both requests and responses
> in the same ring rather than have two rings, one for requests and one
> for responses?"

Ah, right.  Sorry.

Well I don't think there is any huge advantage to putting requests and 
responses into the same ring.

The advantages I can see are:
* It's a neat sort of way of doing things
* Provides backpressure against the requester (in that it has to keep removing 
responses in order to keep queuing requests).

You could get the same performance using a two ring setup like you describe, 
so to a certain extent it's just personal taste.

Cheers,
Mark

> On Mon, 2005-02-07 at 23:00 +0000, Mark Williamson wrote:
> > > Hello. I am reading Xen and the Art of Virtualization. I am curious as
> > > to why the async I/O ring buffers contain both requests and responses
> > > in the same ring.
> >
> > Requests contain details of the IO to be done.  Responses notify the
> > domain when the IO is complete and whether it was successful or not.
> >
> > Requests can complete out of order, so it's necessary to have response
> > messages following back to the domain to tell it when each request is
> > done. If the requests were always dealt with in order it would not be
> > necessary to have responses flowing back, so the ring could be
> > unidirectional.
> >
> > The Safe Hardware Access paper has more details about the IO rings work.
> >
> > HTH,
> > Mark
> >
> >
> > -------------------------------------------------------
> > SF email is sponsored by - The IT Product Guide
> > Read honest & candid reviews on hundreds of IT Products from real users.
> > Discover which products truly live up to the hype. Start reading now.
> > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/xen-devel


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-02-08  1:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-07 22:59 Why are I/O rings bidirectional? McGroarty
2005-02-07 23:00 ` Mark Williamson
2005-02-07 23:52   ` Harry Butterworth
2005-02-08  1:52     ` Mark A. Williamson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.