From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: butterflyhuangxx@gmail.com, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org, seanjc@google.com,
Cornelia Huck <cohuck@redhat.com>,
Janosch Frank <frankja@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
linux-s390 <linux-s390@vger.kernel.org>,
Thomas Huth <thuth@redhat.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>
Subject: Re: KVM: Warn if mark_page_dirty() is called without an active vCPU
Date: Thu, 13 Jan 2022 12:30:19 +0000 [thread overview]
Message-ID: <b6d9785d769f98da0b057fac643b0f088e346a94.camel@infradead.org> (raw)
In-Reply-To: <e9e5521d-21e5-8f6f-902c-17b0516b9839@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1544 bytes --]
On Thu, 2022-01-13 at 13:14 +0100, Paolo Bonzini wrote:
> On 1/13/22 13:06, Christian Borntraeger wrote:
> > From: Christian Borntraeger<
> > borntraeger@de.ibm.com
> > >
> >
> > Quick heads-up.
> > The new warnon triggers on s390. Here we write to the guest from an
> > irqfd worker. Since we do not use dirty_ring yet this might be an
> > over-indication.
> > Still have to look into that.
>
> Yes, it's okay to add an #ifdef around the warning.
That would be #ifndef CONFIG_HAVE_KVM_DIRTY_RING, yes?
I already found it hard to write down the rules around how
kvm_vcpu_write_guest() doesn't use the vCPU it's passed, and how both
it and kvm_write_guest() need to be invoked on a pCPU which currently
owns *a* vCPU belonging to the same KVM... if we add "unless you're on
an architecture that doesn't support dirty ring logging", you may have
to pass me a bucket.
Are you proposing that as an officially documented part of the already
horrid API, or a temporary measure :)
Btw, that get_map_page() in arch/s390/kvm/interrupt.c looks like it has
the same use-after-free problem that kvm_map_gfn() used to have. It
probably wants converting to the new gfn_to_pfn_cache.
Take a look at how I resolve the same issue for delivering Xen event
channel interrupts.
Although I gave myself a free pass on the dirty marking in that case,
by declaring that the shinfo page doesn't get marked dirty; it should
be considered *always* dirty. You might have less fun declaring that
retrospectively in your case.
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5965 bytes --]
next prev parent reply other threads:[~2022-01-13 12:30 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-18 17:14 There is a null-ptr-deref bug in kvm_dirty_ring_get in virt/kvm/dirty_ring.c butt3rflyh4ck
2021-10-21 20:08 ` Paolo Bonzini
2021-10-28 7:42 ` butt3rflyh4ck
2021-11-08 5:11 ` butt3rflyh4ck
2021-11-16 15:41 ` butt3rflyh4ck
2021-11-16 16:22 ` [EXTERNAL] " David Woodhouse
2021-11-16 17:07 ` David Woodhouse
2021-11-17 9:46 ` Woodhouse, David
2021-11-17 16:49 ` Paolo Bonzini
2021-11-17 18:10 ` Woodhouse, David
2021-11-20 10:16 ` KVM: Warn if mark_page_dirty() is called without an active vCPU David Woodhouse
2021-11-22 17:01 ` Sean Christopherson
2021-11-22 17:52 ` David Woodhouse
2021-11-22 18:49 ` Sean Christopherson
2022-01-13 12:06 ` Christian Borntraeger
2022-01-13 12:14 ` Paolo Bonzini
2022-01-13 12:29 ` [PATCH] KVM: avoid warning on s390 in mark_page_dirty Christian Borntraeger
2022-01-13 12:31 ` David Woodhouse
2022-01-18 8:37 ` Christian Borntraeger
2022-01-18 8:44 ` Paolo Bonzini
2022-01-18 8:53 ` Christian Borntraeger
2022-01-18 11:44 ` Paolo Bonzini
2022-01-13 12:30 ` David Woodhouse [this message]
2022-01-13 12:51 ` KVM: Warn if mark_page_dirty() is called without an active vCPU Christian Borntraeger
2022-01-13 13:22 ` David Woodhouse
2022-01-13 15:09 ` Christian Borntraeger
2022-01-13 14:36 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b6d9785d769f98da0b057fac643b0f088e346a94.camel@infradead.org \
--to=dwmw2@infradead.org \
--cc=borntraeger@linux.ibm.com \
--cc=butterflyhuangxx@gmail.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).