From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751197AbbIGLfm (ORCPT ); Mon, 7 Sep 2015 07:35:42 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:27694 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750898AbbIGLfl (ORCPT ); Mon, 7 Sep 2015 07:35:41 -0400 Message-ID: <55ED7683.8010506@oracle.com> Date: Mon, 07 Sep 2015 19:35:31 +0800 From: Bob Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: Julien Grall , Roger Pau Monne CC: xen-devel@lists.xenproject.org, Boris Ostrovsky , David Vrabel , linux-kernel@vger.kernel.org Subject: Re: [Xen-devel] [PATCH] xen-blkback: free requests on disconnection References: <1441361287-41234-1-git-send-email-roger.pau@citrix.com> <55E9A1CE.9090905@citrix.com> <55ED29B3.3040805@oracle.com> <55ED70AC.1090505@citrix.com> In-Reply-To: <55ED70AC.1090505@citrix.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Source-IP: aserv0022.oracle.com [141.146.126.234] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/07/2015 07:10 PM, Julien Grall wrote: > On 07/09/15 07:07, Bob Liu wrote: >> Hi Julien, > > Hi Bob, > >> On 09/04/2015 09:51 PM, Julien Grall wrote: >>> Hi Roger, >>> >>> On 04/09/15 11:08, Roger Pau Monne wrote: >>>> Request allocation has been moved to connect_ring, which is called every >>>> time blkback connects to the frontend (this can happen multiple times during >>>> a blkback instance life cycle). On the other hand, request freeing has not >>>> been moved, so it's only called when destroying the backend instance. Due to >>>> this mismatch, blkback can allocate the request pool multiple times, without >>>> freeing it. >>>> >>>> In order to fix it, move the freeing of requests to xen_blkif_disconnect to >>>> restore the symmetry between request allocation and freeing. >>>> >>>> Reported-by: Julien Grall >>>> Signed-off-by: Roger Pau Monné >>>> Cc: Julien Grall >>>> Cc: Konrad Rzeszutek Wilk >>>> Cc: Boris Ostrovsky >>>> Cc: David Vrabel >>>> Cc: xen-devel@lists.xenproject.org >>> >>> The patch is fixing my problem when using UEFI in the guest. Thank you! >>> >> >> Could you please explain the problem you met a bit more? >> So that I can know back port this patch if met similar issue. > > This is related to commit 86839c56dee28c315a4c19b7bfee450ccd84cd25 > "xen/block: add multi-page ring support" (Roger, it may be worth to > indicate the offending commit in you commit message). > > When starting a guest using UEFI. After the domain is destroyed I get > the following warning from blkback: > > > ------------[ cut here ]------------ > WARNING: CPU: 2 PID: 95 at > /home/julien/works/linux/drivers/block/xen-blkback/xenbus.c:274 > xen_blkif_deferred_free+0x1f4/0x1f8() > Modules linked in: > CPU: 2 PID: 95 Comm: kworker/2:1 Tainted: G W 4.2.0 #85 > Hardware name: APM X-Gene Mustang board (DT) > Workqueue: events xen_blkif_deferred_free > Call trace: > [] dump_backtrace+0x0/0x124 > [] show_stack+0x10/0x1c > [] dump_stack+0x78/0x98 > [] warn_slowpath_common+0x9c/0xd4 > [] warn_slowpath_null+0x14/0x20 > [] xen_blkif_deferred_free+0x1f0/0x1f8 > [] process_one_work+0x160/0x3b4 > [] worker_thread+0x140/0x494 > [] kthread+0xd8/0xf0 > ---[ end trace 6f859b7883c88cdd ]--- > > This is because the allocation of the requests are done during the > connection but the free is done when the domain is destroyed. Therefore > if the domain is re-initializing the connection (because UEFI or PV Grub > is used), the request won't be free and kept until the end. > Thank you! Roger, I think it's better to have this information in your commit message too. -- Regards, -Bob