From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Vrabel Subject: Re: Migration memory corruption - PV backends need to quiesce Date: Wed, 2 Jul 2014 11:03:54 +0100 Message-ID: <53B3D90A.4050601@citrix.com> References: <53ADA10D.8030206@citrix.com> <1404117494.3827.8.camel@kazak.uk.xensource.com> <53B1324F.1090304@citrix.com> <1404121988.5000.27.camel@kazak.uk.xensource.com> <53B28D81.5060904@citrix.com> <1404295352.4776.1.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1404295352.4776.1.camel@kazak.uk.xensource.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: Ian Campbell Cc: Andrew Cooper , Tim Deegan , Xen-devel List , Paul Durrant , Jan Beulich , Ian Jackson List-Id: xen-devel@lists.xenproject.org On 02/07/14 11:02, Ian Campbell wrote: > On Tue, 2014-07-01 at 11:29 +0100, David Vrabel wrote: >> On 30/06/14 10:53, Ian Campbell wrote: >>> On Mon, 2014-06-30 at 10:47 +0100, David Vrabel wrote: >>> >>>> Using persistent grants means that backend writes may be lost since the >>>> memcpy in the backend does not update the dirty bitmap and guest writes >>>> to the shared ring may make the backends response writes visible. I >>>> think we may need to disable persistent grant support from blkback until >>>> a mechanism for updating the dirty log is in place. >>> >>> Yes, sadly I think you might be right here. >> >> The copy in the frontend from the persistently granted pages to the >> pages in the bio dirties those pages so this is actually safe. > > What about if the pause+copy happens after the I/O has completed > (response on the ring) and the copy out to the bio pages? Meaning that > on resume the copy would pick up the stale data from the persistent > grant. > > I think the answer is that the frontend won't consider things actually > complete until after the copy and therefore that read will be reissued. Yes. David