From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752911AbdGMRhi (ORCPT ); Thu, 13 Jul 2017 13:37:38 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:26741 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752541AbdGMRhX (ORCPT ); Thu, 13 Jul 2017 13:37:23 -0400 Subject: Re: [PATCH v1] xen/grant-table: log the lack of grants To: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org Cc: konrad.wilk@oracle.com, junxiao.bi@oracle.com References: <20170707182344.9646-1-wen.gang.wang@oracle.com> From: Wengang Message-ID: <51048227-985d-5ad9-3be1-ee2d8aea5afa@oracle.com> Date: Thu, 13 Jul 2017 10:42:47 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170707182344.9646-1-wen.gang.wang@oracle.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Anyone can you please review this patch? thanks, wengang On 07/07/2017 11:23 AM, Wengang Wang wrote: > log a message when we enter this situation: > 1) we already allocated the max number of available grants from hypervisor > and > 2) we still need more (but the request fails because of 1)). > > Sometimes the lack of grants causes IO hangs in xen_blkfront devices. > Adding this log would help debuging. > > Signed-off-by: Wengang Wang > Reviewed-by: Konrad Rzeszutek Wilk > Reviewed-by: Junxiao Bi > --- > drivers/xen/grant-table.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c > index d6786b8..2c6a911 100644 > --- a/drivers/xen/grant-table.c > +++ b/drivers/xen/grant-table.c > @@ -42,6 +42,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -1072,8 +1073,14 @@ static int gnttab_expand(unsigned int req_entries) > cur = nr_grant_frames; > extra = ((req_entries + (grefs_per_grant_frame-1)) / > grefs_per_grant_frame); > - if (cur + extra > gnttab_max_grant_frames()) > + if (cur + extra > gnttab_max_grant_frames()) { > + pr_warn_ratelimited("xen/grant-table: max_grant_frames reached" > + " cur=%u extra=%u limit=%u" > + " gnttab_free_count=%u req_entries=%u\n", > + cur, extra, gnttab_max_grant_frames(), > + gnttab_free_count, req_entries); > return -ENOSPC; > + } > > rc = gnttab_map(cur, cur + extra - 1); > if (rc == 0)