From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: RING_HAS_UNCONSUMED_REQUESTS oddness Date: Wed, 12 Mar 2014 10:28:03 +0000 Message-ID: <1394620083.21145.21.camel@kazak.uk.xensource.com> References: <5318987C.3030303@citrix.com> <1394552666.30915.64.camel@kazak.uk.xensource.com> <531F9B17.5060107@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WNgOQ-0000Z5-8Z for xen-devel@lists.xenproject.org; Wed, 12 Mar 2014 10:28:10 +0000 In-Reply-To: <531F9B17.5060107@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Zoltan Kiss Cc: "xen-devel@lists.xenproject.org" , Wei Liu , Tim Deegan List-Id: xen-devel@lists.xenproject.org On Tue, 2014-03-11 at 23:24 +0000, Zoltan Kiss wrote: > On 11/03/14 15:44, Ian Campbell wrote: > > Is it the case that this macro considers a request to be unconsumed if > > the *response* to a request is outstanding as well as if the request > > itself is still on the ring? > I don't think that would make sense. I think everywhere where this macro > is called the caller is not interested in pending request (pending means > consumed but not responded) It might be interested in such pending requests in some of the pathological cases I allude to in the next paragraph though? For example if the ring has unconsumed requests but there are no slots free for a response, it would be better to treat it as no unconsumed requests until space opens up for a response, otherwise something else just has to abort the processing of the request when it notices the lack of space. (I'm totally speculating here BTW, I don't have any concrete idea why things are done this way...) > > I wonder if this apparently weird construction is due to pathological > > cases when one or the other end is not picking up requests/responses? > > i.e. trying to avoid deadlocking the ring or generating an interrupt > > storm when the ring it is full of one or the other or something along > > those lines?