From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93D91C83004 for ; Wed, 29 Apr 2020 09:26:39 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 684C020731 for ; Wed, 29 Apr 2020 09:26:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xen.org header.i=@xen.org header.b="vtlJZKEf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 684C020731 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jTiz3-0000KN-1w; Wed, 29 Apr 2020 09:26:25 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jTiz1-0000KG-J1 for xen-devel@lists.xenproject.org; Wed, 29 Apr 2020 09:26:23 +0000 X-Inumbo-ID: 7dec2310-89fb-11ea-b9cf-bc764e2007e4 Received: from mail.xenproject.org (unknown [104.130.215.37]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 7dec2310-89fb-11ea-b9cf-bc764e2007e4; Wed, 29 Apr 2020 09:26:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:Mime-Version:Content-Type: References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=YgStSeu4NexQHRS0NB9VnK+4/BDFKBvIfbBLjZnjZjs=; b=vtlJZKEfCrBI8ebJ29AZhXZUmJ tnAFPt8yY4llVvkSop9gYTsrlGHMrdKUujJCTiZyE1HHVR76IjMpZ5zuXpLkKQb3vU7OFftn3bpeL OmfP2bQqaRkTL4WqQlbFhjRxiDHr8ZxLmC1MJw/geikG1uY4ilxs8ppdyydue8v6+7aw=; Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jTiyz-0005eH-EN; Wed, 29 Apr 2020 09:26:21 +0000 Received: from 54-240-197-236.amazon.com ([54.240.197.236] helo=s3-prod-r2d2-p7995.iad7.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jTiyz-0008Sx-2W; Wed, 29 Apr 2020 09:26:21 +0000 Message-ID: Subject: Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly From: Hongyan Xia To: Jan Beulich , Wei Liu Date: Wed, 29 Apr 2020 10:26:19 +0100 In-Reply-To: References: <9287363e13924f4a633b47b53c23b3466e26e4a8.1587116799.git.hongyxia@amazon.com> <9df9c5163fde5d25ceb756b20714c58be93b2c6c.camel@xen.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, Roger Pau =?ISO-8859-1?Q?Monn=E9?= , julien@xen.org, Andrew Cooper Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" On Tue, 2020-04-28 at 16:59 +0100, Hongyan Xia wrote: > On Tue, 2020-04-28 at 16:55 +0100, Hongyan Xia wrote: > > On Tue, 2020-04-28 at 17:33 +0200, Jan Beulich wrote: > > > On 17.04.2020 11:52, Hongyan Xia wrote: > > > > --- a/xen/arch/x86/pv/dom0_build.c > > > > +++ b/xen/arch/x86/pv/dom0_build.c > > > > @@ -50,17 +50,17 @@ static __init void > > > > mark_pv_pt_pages_rdonly(struct domain *d, > > > > unsigned long count; > > > > struct page_info *page; > > > > l4_pgentry_t *pl4e; > > > > - l3_pgentry_t *pl3e; > > > > - l2_pgentry_t *pl2e; > > > > - l1_pgentry_t *pl1e; > > > > + l3_pgentry_t *pl3e, *l3t; > > > > + l2_pgentry_t *pl2e, *l2t; > > > > + l1_pgentry_t *pl1e, *l1t; > > > > > > I don't quite see why the new local variables get introduced: > > > unmap_domain_page(), iirc, is quite fine with a non-page- > > > aligned argument. > > > > You are right, although in this function, where plXe points to may > > not > > be the page we want to unmap. When plXe becomes aligned and points > > to > > a > > new page, we actually want to unmap the page before it increments > > to > > an > > aligned value. > > Hmm, we can just unmap(plXe - 1) if my logic is correct, and save 3 > local variables. Sorry for monologuing, but I still prefer separating plXe and lXt because it makes it clear what we are unmapping. Unmapping plXe - 1 is a bit hackish. But if people do not have a problem with plXe - 1, I will post a new revision for that. Hongyan