Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp357427pxu; Tue, 1 Dec 2020 13:04:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKgkGKHcDIkecMeupCpzwHQ00M4x1G3natLp9Ob/iMjYkK3ff6boED7mUbwputwZeuD3jj X-Received: by 2002:a05:6402:10ce:: with SMTP id p14mr5082605edu.12.1606856677442; Tue, 01 Dec 2020 13:04:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606856677; cv=none; d=google.com; s=arc-20160816; b=VIAu7lpB34bRQere5jQx3aNQfBXNhKTPg+RkXsc3Ytd5TnmD3vYxeF47uAgShvN91O HC4tDGdcRhTf8A4dF4XFxfEpf2eVftGZBrDX3CpJnF6VXDBxbLd0fsNlCQ9ce7kamFGx NW4bmxTuNIEvCh7mAjTz7xZ04/8OmY7lC5nqSK79fQOyverdx58NilEnlexdhSxHqZBd 8S3lesV6w63KytYBNUGec9hwYEyxrxlXJbBMljzuC6gdgYmmgMeUHgeLp21SDEuTHbhW 7P17vegTExvh61tJqWkO352nMF9uvxdCSGHQwVmwgN8wDJcKIMw5gp8gkb4LA8rL5q7O 4Ewg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=mQ99B4uaV54VXp2Y9J9uSB/U6L6oC5bSI3IWQqBUypc=; b=UWpaPRZt00W/BrjfvjpYJhxp+1VhuLHr66nN/YQY4suOWvcQfVd0J7jha5A3Rhc9wQ Yc71GpavA+jjtl8Pyn8LXmnbSTu4F8yjLPCUJWi8kTEmpzdsR7X1aX7N1eZaCd9Oar6Q ePDlVWoQEf1A/1yRK/0GvfiYUNUePirJXuwgR16Q/N0UWkwoSa30x4C5tZz7EfoL7NCF RbFmJ0XBsRVh0bkPGeMzU6oAjd7QQwo54nfPAweYF2z/fVEl6BuD/6Uhdx40DX4W+lXX hUQ/pPPpRoWJk7MZPpqIbzGqxwX8zU4FFfEeA34HcNFLFMGXWZfrKedopbBD/cVvqVXX gLEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=g8BOli3n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a20si672601ejd.75.2020.12.01.13.04.11; Tue, 01 Dec 2020 13:04:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=g8BOli3n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729005AbgLAVAg (ORCPT + 99 others); Tue, 1 Dec 2020 16:00:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:41172 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725971AbgLAVAf (ORCPT ); Tue, 1 Dec 2020 16:00:35 -0500 Received: from willie-the-truck (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 50567207FF; Tue, 1 Dec 2020 20:59:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606856395; bh=p9JKBySgEVo6cQvfoDeLWixQOBZhOoCP1Hb20LsMwiU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=g8BOli3nO/sSpK8q8W0P78yKh5sMbgMiWRYD7GbfsPq3OOO6KBtFxV8BzM0l/NxZ5 X3ngjEiJT/5Aryd3eDwUsxi6QNq/0ZUNdaxuew63tAhsQTDkDvCfz7qZ1VeHVW1m+m 0x5VuvVHxrFlmcPzA/L6EeiV739sWFPtV57bhXTY= Date: Tue, 1 Dec 2020 20:59:48 +0000 From: Will Deacon To: Yanan Wang Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Marc Zyngier , Catalin Marinas , James Morse , Julien Thierry , Suzuki K Poulose , Gavin Shan , Quentin Perret , wanghaibin.wang@huawei.com, yezengruan@huawei.com, zhukeqian1@huawei.com, yuzenghui@huawei.com, jiangkunkun@huawei.com, wangjingyi11@huawei.com, lushenming@huawei.com Subject: Re: [PATCH v2 0/3] Fix several bugs in KVM stage 2 translation Message-ID: <20201201205948.GA28178@willie-the-truck> References: <20201201201034.116760-1-wangyanan55@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201201201034.116760-1-wangyanan55@huawei.com> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Dec 02, 2020 at 04:10:31AM +0800, Yanan Wang wrote: > When installing a new pte entry or updating an old valid entry in stage 2 > translation, we use get_page()/put_page() to record page_count of the page-table > pages. PATCH 1/3 aims to fix incorrect use of get_page()/put_page() in stage 2, > which might make page-table pages unable to be freed when unmapping a range. > > When dirty logging of a guest with hugepages is finished, we should merge tables > back into a block entry if adjustment of huge mapping is found necessary. > In addition to installing the block entry, we should not only free the non-huge > page-table pages but also invalidate all the TLB entries of non-huge mappings for > the block. PATCH 2/3 adds enough TLBI when merging tables into a block entry. > > The rewrite of page-table code and fault handling add two different handlers > for "just relaxing permissions" and "map by stage2 page-table walk", that's > good improvement. Yet, in function user_mem_abort(), conditions where we choose > the above two fault handlers are not strictly distinguished. This will causes > guest errors such as infinite-loop (soft lockup will occur in result), because of > calling the inappropriate fault handler. So, a solution that can strictly > distinguish conditions is introduced in PATCH 3/3. For the series: Acked-by: Will Deacon Thanks for reporting these, helping me to understand the issues and then spinning a v2 so promptly. Will