From nobody Mon Jun 8 15:33:13 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD26D3E51EB for ; Thu, 28 May 2026 11:38:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779968339; cv=none; b=l7f9BEeWeRJelsJo5lEo+hweIgYuVWPP/HkOtAsitiNEIIddEvPUitMK7QtWJY2PTPp9BEhmyCKQqMMEQoQ+isg5yJECsxsq4sS5P2dFp5KVNqrXMPL2mVzqXv8aFmJ0Ma8seRQ74j2cnbzu0pSBTTgQDSx95RgziUZJpUwnmYc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779968339; c=relaxed/simple; bh=R+idNd6VQHryMkE7s+xh+chHq0O9Dd0htuOKJxMUPRk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=F4DTXFWrdsXvhGkH7HHb36oyQYBH2yPWeiCRyAmlSqqGTrCbskWcegL8/TBIig5jd6mL3dFaS5OpEq4vs3YC1tbkdF7hI8XRh7pQb0Ecll1wZT0oN9Z38L6WQ0JduzoOtrCFr9GiLPEht4oNZs9gbJywNHZqaBMOGlXwIuMvCrU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=meWzqMFl; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="meWzqMFl" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2ba6485d219so98009585ad.3 for ; Thu, 28 May 2026 04:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779968334; x=1780573134; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=HQOVqn7f6Wpqd2/fSU+ahSddV1Hbd7ryZ20yjrjfDWg=; b=meWzqMFl3d8z49Vt2+bTgy2xVVVq+gyz3ZObwOqZHrh3IkyRIgDdRNjdlCLk2lVX9B iHmm80AKtAeEbgzCkEiBukayly8CgFJ9m87W1uTL/RiCLM9dq20izt57mAeWFki9KpHR MQF1SEOoxlWbKqCGxtkdTMe31it1Md5H+HY4jImgpoW9gSMWRkG8AVKDUvnFraqwyM+4 iVZLB3xilqeXy3KnAEeHuAsENuwYaTASkojDrbgqT6XZVcs+MDAUnjL+E4/W94QDRZEJ fxi3JDVN7kj7+CcMYmTOlh/w48ELzNmOlE+slw76ZG06CWjEEUqzj+JOsbr3Ca1C1I7n g3kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779968334; x=1780573134; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HQOVqn7f6Wpqd2/fSU+ahSddV1Hbd7ryZ20yjrjfDWg=; b=jJMiyZbRH8F61FAxsAf5Y3yq2L3pxnGgIczXJ6YYbdkUBF+DgUcc+64DOagjxsrKl8 uzE8ox5lXCNXtTYPBn96sGPWBHYakGUaU6kkq64N2d9Myxs5MuMdEV8KCV8XmB5UYEnC 1E7CTZsv1y4huPkGVHuhr+wUsh9hTfNE++d/9RXbcnMo+iDNuQjMcYvyITzaAszleNPp QhN21WXy93hOkBqB7rJR16QGmuAmTPcnN602Nw4qVNedpO2DuiYVEuIvUzpIQD4AhOqp QRRyLocPJkgc4yiycFRhYuI4eoiMf1nRj2maGyimhNOyUjzcUYF7w/oyQ0FHkuZNbl8n THZg== X-Forwarded-Encrypted: i=1; AFNElJ/uD4h6K447DbX5e7bw6bmglwkgLBoZUVFmR5GUHyplXb5qaePrCrnIWRMhm9WImeObJ571nzMNfMRkUcI=@vger.kernel.org X-Gm-Message-State: AOJu0Yxpnf8VbbH36Az/xRtvyHeRVsSl/y6b4kyNNL2qeARdIu5MaT/I p6FIEZBftaYONamSQNlHH4L44g7BwRyLUdZVGUmgYk+SSMzCecYDx47u X-Gm-Gg: Acq92OHhpnqTCNnH8tDwFn8vVt8BdxOB8Hc35SP9Eon5eMilpKKI0+QveNjSbl9UsFc FxWTWjvgmPy7qMBmO4DrVfKNMwoZqoVtlHaz9zvXCsn+fKFVNZi8HEmA9fGsbB6PkuEd5glAb16 G7bXauG0PW1KlnCMeG5sWakvd5on0p4lB8oHMvU/j6tbORcTeuQHI3YrR0Z26Lgv36qW6+j+1B+ 4PUqCQgHK8IBbPqfGM4ZJZuEGCQRp1TOONxp/4+kkAflbaIpShQ7z9jM8OVAT6acitVo7q8xVYK x0QqKOG7I7wIVY7ywzPAh3clc1bmQhf2HjKtVvEAtC8/xl3A4Vqtj3GnI2/gSiK8QmBEnUvXiyh Fn78dUWkRnie3shF7K9JuX1KFT8LaxR3yXwH0T555JLzJvZWgk24zgFCmB9QhLrG8Ih0CwhNd8Q XRi4j5hphrarMgrdEn8rEmN1M+r0SgTaxYog== X-Received: by 2002:a17:902:cec7:b0:2b2:ccfb:8387 with SMTP id d9443c01a7336-2beb0613c3bmr312598815ad.28.1779968334356; Thu, 28 May 2026 04:38:54 -0700 (PDT) Received: from localhost ([2001:19f0:8001:1b2d:5400:5ff:fefa:a95d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56958d3sm170611355ad.12.2026.05.28.04.38.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 May 2026 04:38:53 -0700 (PDT) From: Inochi Amaoto To: Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: Inochi Amaoto , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Yixun Lan , Longbin Li Subject: [PATCH] RISC-V: KVM: Enhance the logging check for mmu mapping Date: Thu, 28 May 2026 19:38:39 +0800 Message-ID: <20260528113840.2629186-1-inochiama@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When enabling dirty ring, the dirty bitmap is disable, and the logging check is always false as the RISC-V architecture does not select "NEED_KVM_DIRTY_RING_WITH_BITMAP". Although the dirty log is recorded since the write path already trying to add the dirty log, the logic for logging check is broken and some side effect will occurs. Enhance the logging check for mmu mapping so it can check both the dirty ring and the dirty bitmap. Signed-off-by: Inochi Amaoto Reviewed-by: Anup Patel --- arch/riscv/kvm/mmu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c index 2d3def024270..b5873bca9dce 100644 --- a/arch/riscv/kvm/mmu.c +++ b/arch/riscv/kvm/mmu.c @@ -142,9 +142,8 @@ void kvm_arch_commit_memory_region(struct kvm *kvm, enum kvm_mr_change change) { /* - * At this point memslot has been committed and there is an - * allocated dirty_bitmap[], dirty pages will be tracked while - * the memory slot is write protected. + * At this point memslot has been committed and dirty pages will be + * tracked while the memory slot is write protected. */ if (change !=3D KVM_MR_DELETE && new->flags & KVM_MEM_LOG_DIRTY_PAGES) { if (kvm_dirty_log_manual_protect_and_init_set(kvm)) @@ -433,8 +432,8 @@ int kvm_riscv_mmu_map(struct kvm_vcpu *vcpu, struct kvm= _memory_slot *memslot, struct vm_area_struct *vma; struct kvm *kvm =3D vcpu->kvm; struct kvm_mmu_memory_cache *pcache =3D &vcpu->arch.mmu_page_cache; - bool logging =3D (memslot->dirty_bitmap && - !(memslot->flags & KVM_MEM_READONLY)) ? true : false; + bool logging =3D kvm_slot_dirty_track_enabled(memslot) && + !(memslot->flags & KVM_MEM_READONLY); unsigned long vma_pagesize, mmu_seq; struct kvm_gstage gstage; struct page *page; --=20 2.54.0