From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH] oxenstored: fix short-write issue Date: Mon, 2 Nov 2015 13:44:43 +0000 Message-ID: <1446471883.3088.40.camel@citrix.com> References: <1445965809-5144-1-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZtFQ7-0006Wc-2c for xen-devel@lists.xenproject.org; Mon, 02 Nov 2015 13:45:11 +0000 In-Reply-To: <1445965809-5144-1-git-send-email-wei.liu2@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: Wei Liu , Xen-devel Cc: Samuel Thibault , Ian Jackson , David Scott List-Id: xen-devel@lists.xenproject.org On Tue, 2015-10-27 at 17:10 +0000, Wei Liu wrote: > When oxenstored wrote to the ring, it wrote a chunk of contiguous data. > Originally when it tried to write across ring boundary, it returned a > short-write when there is still room. That led to stalling mini-os's > xenstore thread at times. What is a "short-write" in this context? Given data bytes 0..M I assumed it is only writing bytes 0..N and not N+1..M because the ring boundary is at N. But what is it writing to the ->prod ring pointer N or M? AIUI writing N should be allowed by the ring protocol, the client should keep looking for more data until it has a complete request. Writing M would be a server error. Ian.