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 Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E8101CFC5EC for ; Thu, 10 Oct 2024 18:32:28 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [127.0.0.1]) by lists.ozlabs.org (Postfix) with ESMTP id 4XPdX82jdfz3bkg; Fri, 11 Oct 2024 05:27:20 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; arc=none smtp.remote-ip="2607:f8b0:4864:20::b4a" ARC-Seal: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1728584840; cv=none; b=YhawyvcSLHMnTXDuoWqaHeucO8mfG8VSsUcvSZNSMxuDP+YFzWPvYHwBXR+oI/hQpB4Xh/jGMLC9twMtmEd7l54DVGvd2OZqbOgNUrKF9R7iLxRd2zv+7U2xPLRICeetz9AZr7icLsCiqarDvQBzT6iaSchtbzmlHBocM0Bx2e09gvtQxTr8swXpTSKlvqTgFer+Ebo6hsQPGXaUzufOUFjidWEbzj4D5NxxBx7QLyWSMjW2fRhuF7n9Rsp1SDT8Js8uO1NGHNgpXi3gzZXLP8dp1KpZiGa3wMtGimTT06sBdpwLktZ2/nJ010G+job2T0PbbI8brCdY2F6DwFHoLg== ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1728584840; c=relaxed/relaxed; bh=Sag0fj8OwucY2qRogRu5ELvjWktNcy71jZ/+qgEdHaE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Pw8jWasJZTwU4kiypMbUWabrndBBpLYhzJlwVsQjPwtgG/wuwCcIFP7z/ZTNZ2Ce8UWvco7yQOX04EpMevdamm0OIFExNv+AZMhbmfw/Zunl7wRWI1vkd05u5d9zZizfK0CVJCpdwJWNfux1v+v/bq/M/02lEIhY+RknmGSF43JjGd7akqJ+jy0RlewzuAlNpywdAw/P3YoE6jqNMUnwDlXnRDmn7fNBToPBtuqGIN1r/nPZPJhSPUjsgn+pqVTnU5nYmdoJ+chrvuxDNy17G5UzLvnbuQICTHOyjjXMjZT7cpGD+QCLwMK+CtCHI5aVJ/egI4/8+xYIMqt1KYXMjA== ARC-Authentication-Results: i=1; lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20230601 header.b=aCq+L8BZ; dkim-atps=neutral; spf=pass (client-ip=2607:f8b0:4864:20::b4a; helo=mail-yb1-xb4a.google.com; envelope-from=3hrwizwykdb4m84hd6aiiaf8.6igfchorjj6-78pfcmnm.itf45m.ila@flex--seanjc.bounces.google.com; receiver=lists.ozlabs.org) smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20230601 header.b=aCq+L8BZ; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=flex--seanjc.bounces.google.com (client-ip=2607:f8b0:4864:20::b4a; helo=mail-yb1-xb4a.google.com; envelope-from=3hrwizwykdb4m84hd6aiiaf8.6igfchorjj6-78pfcmnm.itf45m.ila@flex--seanjc.bounces.google.com; receiver=lists.ozlabs.org) Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4XPdX73Mtkz3cRF for ; Fri, 11 Oct 2024 05:27:19 +1100 (AEDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-e2916c47e9fso298501276.1 for ; Thu, 10 Oct 2024 11:27:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1728584837; x=1729189637; darn=lists.ozlabs.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=Sag0fj8OwucY2qRogRu5ELvjWktNcy71jZ/+qgEdHaE=; b=aCq+L8BZQ6zd7f8LEi8CwlLLSjHEtIBk+nyDXzf+8qQINoScR8qq7P45+LlXhOvG/7 3qMVdf8GNqtAiyltSCi2D1GPMuC5MUKtYxEx0QmaUyrDH9CeZ07k22fSgj5Cn3Qb8SMM Xsa61o/UXuzHQjb3VLJhg/JNEm9COBbOHKrQaSUSRQqgYCDNWZBc1RYEoFS75lGqMEz0 +KkvxO6yDEUstOQShXNdSd8zVy3a3Booy2fkUza9aHDkLYwYxxsijr5fO83bODV1hywY NydmGxYAvgFqC9G0oKnypPwAeNiPQkCdChRiuTjdWjCQThn+38TtCI1h17Z9O1F0R2S6 kq5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728584837; x=1729189637; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Sag0fj8OwucY2qRogRu5ELvjWktNcy71jZ/+qgEdHaE=; b=nRHbXrlFfQky0XIVHmsYNvJfL6dzIVoXDopix3LAijEqw1HFccjjRudP3agunuYre8 8AXgeG/wtAuR1VZ8iyvAKVYQoEsNOvkrXsCf9KLn/I+cSL1CZvtl7G3nUKrTy3rHibJL 4gPf8OiqTRKQQI/s5yCZJ2CHNQEvSoeAXRC0LzckDyDJ6lNFVFP2Wn1Ms1UzX/9W19m6 bceC5wOKJeCX9s3u74ZSIfjXpXsskQr9iFQxEwgftPbMzBGRgy9BhWb3DBEgvspsl0kS 2UIzEBfTXXYGscgQX+Q+o8JV6CxAyzwq0JXpIoTRyRDCh79yXTvoPxqgDvnHcbGBIAOT 82iA== X-Forwarded-Encrypted: i=1; AJvYcCXvnXDUwSy0deJycb4v+IpyIIVQYMsxtlm/DxiMplFX/awWBQvzZZZoxxzozhzG7D6npx+mDbpaRf1dUvQ=@lists.ozlabs.org X-Gm-Message-State: AOJu0YwqnEJ1+wKztmfxiowPfHSAbdbCC2FT/nOLvKoOwWidaHZMlr9f KaPtha9dmtp/MHtDoqDZ7bKVUWDC3usovOBR9gzmvSEUVneJmFddrNzJc/GiCfyBdSJJULs081a 1PQ== X-Google-Smtp-Source: AGHT+IEjJriLMGICq9yty21Fx3Z3FQyTG0XCg9lS5qhc+MvTVoRASG8drmw0OxSoWZyAtrQmM3pJDo8jQYk= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:9d:3983:ac13:c240]) (user=seanjc job=sendgmr) by 2002:a5b:a4c:0:b0:e28:f454:7de5 with SMTP id 3f1490d57ef6-e28fe52740fmr75826276.6.1728584837458; Thu, 10 Oct 2024 11:27:17 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 10 Oct 2024 11:24:11 -0700 In-Reply-To: <20241010182427.1434605-1-seanjc@google.com> X-Mailing-List: linuxppc-dev@lists.ozlabs.org List-Id: List-Help: List-Post: List-Subscribe: , , List-Unsubscribe: Mime-Version: 1.0 References: <20241010182427.1434605-1-seanjc@google.com> X-Mailer: git-send-email 2.47.0.rc1.288.g06298d1525-goog Message-ID: <20241010182427.1434605-70-seanjc@google.com> Subject: [PATCH v13 69/85] KVM: MIPS: Mark "struct page" pfns dirty only in "slow" page fault path From: Sean Christopherson To: Paolo Bonzini , Marc Zyngier , Oliver Upton , Tianrui Zhao , Bibo Mao , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Sean Christopherson Cc: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, "=?UTF-8?q?Alex=20Benn=C3=A9e?=" , Yan Zhao , David Matlack , David Stevens , Andrew Jones Content-Type: text/plain; charset="UTF-8" Mark pages/folios dirty only the slow page fault path, i.e. only when mmu_lock is held and the operation is mmu_notifier-protected, as marking a page/folio dirty after it has been written back can make some filesystems unhappy (backing KVM guests will such filesystem files is uncommon, and the race is minuscule, hence the lack of complaints). See the link below for details. Link: https://lore.kernel.org/all/cover.1683044162.git.lstoakes@gmail.com Signed-off-by: Sean Christopherson --- arch/mips/kvm/mmu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/mips/kvm/mmu.c b/arch/mips/kvm/mmu.c index c17157e700c0..4da9ce4eb54d 100644 --- a/arch/mips/kvm/mmu.c +++ b/arch/mips/kvm/mmu.c @@ -514,7 +514,6 @@ static int _kvm_mips_map_page_fast(struct kvm_vcpu *vcpu, unsigned long gpa, set_pte(ptep, pte_mkdirty(*ptep)); pfn = pte_pfn(*ptep); mark_page_dirty(kvm, gfn); - kvm_set_pfn_dirty(pfn); } if (out_entry) @@ -628,7 +627,6 @@ static int kvm_mips_map_page(struct kvm_vcpu *vcpu, unsigned long gpa, if (write_fault) { prot_bits |= __WRITEABLE; mark_page_dirty(kvm, gfn); - kvm_set_pfn_dirty(pfn); } } entry = pfn_pte(pfn, __pgprot(prot_bits)); @@ -642,6 +640,9 @@ static int kvm_mips_map_page(struct kvm_vcpu *vcpu, unsigned long gpa, if (out_buddy) *out_buddy = *ptep_buddy(ptep); + if (writeable) + kvm_set_pfn_dirty(pfn); + spin_unlock(&kvm->mmu_lock); kvm_release_pfn_clean(pfn); kvm_set_pfn_accessed(pfn); -- 2.47.0.rc1.288.g06298d1525-goog