Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp245916imu; Tue, 8 Jan 2019 18:57:31 -0800 (PST) X-Google-Smtp-Source: ALg8bN4dy8Z+zPiNKeoCSZOFsVLr+6DLkQcc7ry0B8/mPyHLJIW8YfYMzu8/ZmqxQa0qSsodCefn X-Received: by 2002:a17:902:6b46:: with SMTP id g6mr4306670plt.21.1547002651613; Tue, 08 Jan 2019 18:57:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547002651; cv=none; d=google.com; s=arc-20160816; b=e/pY1OnMNwOJ7fLlVVYG2LVIN3gqGJNI5u2UKy1CJ3yKBYElYS8Pc1Hnb9yHCcTgeS ymAZkYNMgq5GA+ij/ONDXyJ0va8sUlmEtVcJSoF4e+WbfBVUGRQD53G2PSle06uA7pDi 75CVkO5lmfVq6m2cCqzc6Th+d/UqR8INtLMpq7juqFsdNvd35kzA24fQtJTSV367HwM0 q3GrqjlfnFxxhZXydhP7Zrnp3L3cSXW92YCki9IPdePPy5yZswSC76dvID4SqEEosu2K ymdtU+BjvamoCt/nsqj7Y6BTdSlNepPrehuBKR9jPjAY13uMMf4S18AcZtDm4AZhwFZx n4bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=N0YQAPReHAte+09lMbd1s7XSzhpgrDXVrObhK89UPtw=; b=hcR/JC4XlFno3qU4ljHhq3hsIJyn1jQKvc9Mdm+grSD2hCDgTxDmRwkOvvxvhEGcTd S9k/l821bQkn7XNBHXyrTQkPBDtZTN80lY6/3JWyRqEKjFWNh5+43tYO1LVjoQSr5koc f7PSsgV3YKyUIqhfctpEuZ0qqslPqdm0OWAqcAw9wWv3mTWl96OAZ0IEMKExedNWS2NS YzxvILQLDD/JrCmG4whY9/YDV85fZdnbX7oxR4mub3R2o5eF+fDEarUk0bq9RgjpXY3F aLf1g6O1QVZLScqpmpz+gDin/OMT9R4QuJHt6aNdaFNBUrfK/4ZmehLkbDb8c33JaTIW 7UTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=woh44JVv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 36si30226296pgt.213.2019.01.08.18.57.15; Tue, 08 Jan 2019 18:57:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=woh44JVv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728186AbfAICxK (ORCPT + 99 others); Tue, 8 Jan 2019 21:53:10 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:59058 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727656AbfAICxK (ORCPT ); Tue, 8 Jan 2019 21:53:10 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id x092jIgs174189; Wed, 9 Jan 2019 02:53:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=N0YQAPReHAte+09lMbd1s7XSzhpgrDXVrObhK89UPtw=; b=woh44JVvlU7qk115/bRfMrUIX7S8BvML10BioMiUKoeWYZjkJutm5LcokgvuNx5VE19M o1vusOuq5VqwlTuH1QkkYR7X+ag2RS6kJMHCc4aLCBAhBeh5j6bbOm+bEkBdgQsSQT2Z U2Fm78o/E+oNVrA/UPS0uNiNnySKYkhLuZJ85s0TbVCIGDl0iL8RO+xo78/0KKBxyF9p up+vhxuKC1kI04Lvf2z16XckOWYZ65bj8bfVgFQnhWonSYck5D+xQ7HNVUcCvQE1MYAv I+ui0dSMyx345AbQXJlPY8Fcic65yUoVg5+Pm+YSrHB0bpKlDhSE7EhvhV183u9oxroH GQ== Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2130.oracle.com with ESMTP id 2ptj3dy662-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Jan 2019 02:53:02 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id x092r22L016707 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 9 Jan 2019 02:53:02 GMT Received: from abhmp0002.oracle.com (abhmp0002.oracle.com [141.146.116.8]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x092r1s9029452; Wed, 9 Jan 2019 02:53:02 GMT Received: from [192.168.1.164] (/50.38.38.67) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 08 Jan 2019 18:53:01 -0800 Subject: Re: [PATCH 1/1] mm/hugetlb.c: teach follow_hugetlb_page() to handle FOLL_NOWAIT To: Andrea Arcangeli , Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport , Peter Xu , "Dr. David Alan Gilbert" References: <20190109020203.26669-1-aarcange@redhat.com> <20190109020203.26669-2-aarcange@redhat.com> From: Mike Kravetz Message-ID: Date: Tue, 8 Jan 2019 18:53:00 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 MIME-Version: 1.0 In-Reply-To: <20190109020203.26669-2-aarcange@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9130 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901090021 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/8/19 6:02 PM, Andrea Arcangeli wrote: > hugetlb needs the same fix as faultin_nopage (which was applied in > 96312e61282ae3f6537a562625706498cbc75594) or KVM hangs because it > thinks the mmap_sem was already released by hugetlb_fault() if it > returned VM_FAULT_RETRY, but it wasn't in the FOLL_NOWAIT case. > > Fixes: ce53053ce378 ("kvm: switch get_user_page_nowait() to get_user_pages_unlocked()") > Signed-off-by: Andrea Arcangeli > Tested-by: "Dr. David Alan Gilbert" > Reported-by: "Dr. David Alan Gilbert" Thanks for fixing this. Reviewed-by: Mike Kravetz -- Mike Kravetz > --- > mm/hugetlb.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index e37efd5d8318..b3622d7888c8 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -4301,7 +4301,8 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, > break; > } > if (ret & VM_FAULT_RETRY) { > - if (nonblocking) > + if (nonblocking && > + !(fault_flags & FAULT_FLAG_RETRY_NOWAIT)) > *nonblocking = 0; > *nr_pages = 0; > /* >