From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Liu Subject: Re: [PATCHv5 12/14] xen-blkback: safely unmap grants in case they are still in use Date: Thu, 12 Mar 2015 08:08:42 +0800 Message-ID: <5500D90A.6080006@oracle.com> References: <1422377057-19221-1-git-send-email-david.vrabel@citrix.com> <1422377057-19221-13-git-send-email-david.vrabel@citrix.com> <54FD6331.8040503@oracle.com> <54FD6831.5020700@citrix.com> <54FD7B49.7080401@oracle.com> <54FD7DC8.60401@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YVqgG-0005nM-27 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2015 00:08:52 +0000 In-Reply-To: <54FD7DC8.60401@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: David Vrabel Cc: xen-devel@lists.xenproject.org, Boris Ostrovsky , Jenny Herbert , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org On 03/09/2015 07:02 PM, David Vrabel wrote: > On 09/03/15 10:51, Bob Liu wrote: >> >> On 03/09/2015 05:30 PM, David Vrabel wrote: >>> On 09/03/15 09:09, Bob Liu wrote: >>>> Hi David, >>>> >>>> Recently I met an issue which is likely related with this patch. It >>>> happened when running block benchmark on domU, the backend was an iSCSI >>>> disk connected to dom0. I got below panic at put_page_testzero() on >>>> dom0, at that time the ixgbe network card was freeing skb pages in >>>> __skb_frag_unref() but the page->_count was already 0. >>>> Do you think is it possiable that page was already freed by blkback? >>> >>> It's possible, but in this case I think the blkback device must have >>> been destroyed for this to have happened, because blkback doesn't free >>> the pages until it is destroyed. >>> >> >> Sorry, I didn't get the point here, doesn't bio_complete free pages? >> E.g. >> __end_block_io_op() > xen_blkbk_unmap_and_respond() > put_free_pages() >> Then shrink_free_pagepool() free the page finally. > > Ug. That's all the persistent grant stuff I'm not very familiar with. > Perhaps Roger can comment? > Well, I think I may figure out this issue but haven't confirmed yet. In purge_persistent_gnt() > unmap_purged_grants(), we should also change to use gnttab_unmap_refs_async(). -- Regards, -Bob