Messages in this thread | | | Subject | Re: [PATCH 4/4] KVM: Improve warning report in mark_page_dirty_in_slot() | From | Gavin Shan <> | Date | Fri, 20 Jan 2023 10:06:52 +1100 |
| |
Hi Sean,
On 1/20/23 2:19 AM, Sean Christopherson wrote: > On Thu, Jan 19, 2023, Gavin Shan wrote: >> On 1/18/23 2:42 AM, Sean Christopherson wrote: >>> On Mon, Jan 16, 2023, Gavin Shan wrote: >>>> There are two warning reports about the dirty ring in the function. >>>> We have the wrong assumption that the dirty ring is always enabled when >>>> CONFIG_HAVE_KVM_DIRTY_RING is selected. >>> >>> No, it's not a wrong assumption, becuase it's not an assumption. The intent is >>> to warn irrespective of dirty ring/log enabling. The orignal code actually warned >>> irrespective of dirty ring support[1], again intentionally. The >>> CONFIG_HAVE_KVM_DIRTY_RING check was added because s390 can mark pages dirty from >>> an worker thread[2] and s390 has no plans to support the dirty ring. >>> >>> The reason for warning even if dirty ring isn't enabled is so that bots can catch >>> potential KVM bugs without having to set up a dirty ring or enable dirty logging. >>> >>> [1] 2efd61a608b0 ("KVM: Warn if mark_page_dirty() is called without an active vCPU") >>> [2] e09fccb5435d ("KVM: avoid warning on s390 in mark_page_dirty") >>> >> >> Thanks for the linker. I was confused when looking at the code, but now it's clear to >> me. Thanks for your explanation. How about to add a comment there? >> >> /* >> * The warning is expected when the dirty ring is configured, >> * but not enabled. >> */ > > That's not correct either. By design, the warning can also fire if the dirty ring > is enabled. KVM's rule is that writes to guest memory always need to be done in > the context of a running vCPU, with the recently added exception of > kvm_arch_allow_write_without_running_vcpu(). That intent of the warning is to > enforce that rule regardless of the state of the VM. > > Concretely, I think you can just drop patches 3 and 4, and just fix the arm64 issues. >
Right, the warning report is still expected when dirty ring is enabled. My attempt was to have comment for the confused case. Anyway, it's not a big deal. I will drop PATCH[3] and PATCH[4] in v2.
Thanks, Gavin
| |