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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/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.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
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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
> 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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
harry@hebutterworth.freeserve.co.uk
2005-Feb-08 11:03 UTC
Re: Re: [Xen-devel] Why are I/O rings bidirectional?
Is there anything to prevent the deadlock where the ring is entirely full of requests such that there is no space to put in any responses? -- Whatever you Wanadoo: http://www.wanadoo.co.uk/time/ This email has been checked for most known viruses - find out more at: http://www.wanadoo.co.uk/help/id/7098.htm ------------------------------------------------------- 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
> Is there anything to prevent the deadlock where the ring is > entirely full of requests such that there is no space to put > in any responses?Each request generates (at most) one response so this can''t happen. If you additionally wanted some fixed number of outstanding in-band "unsolicited responses" then you''d need to allocate headroom appropriately. We haven''t had the need to do this as all control is out-of-band. Ian ------------------------------------------------------- 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_ide95&alloc_id396&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel