kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: stsp <stsp2@yandex.ru>
To: Jim Mattson <jmattson@google.com>
Cc: Sean Christopherson <seanjc@google.com>, kvm@vger.kernel.org
Subject: exception vs SIGALRM race (was: Re: guest/host mem out of sync on core2duo?)
Date: Mon, 21 Jun 2021 05:34:39 +0300	[thread overview]
Message-ID: <d5bf20f4-9aef-8e7e-8a8f-47d10510724e@yandex.ru> (raw)
In-Reply-To: <CALMp9eSpJ8=O=6YExpOtdnA=gQkWfQJ+oz0bBcV4gOPFdnciVA@mail.gmail.com>

19.06.2021 00:07, Jim Mattson пишет:
> I believe DS is illegal. Per the SDM, Checks on Guest Segment Registers:
OK, so this indeed have solved
the biggest part of the problem,
thanks again.

Now back to the original problem,
where I was getting a page fault
on some CPUs sometimes.
I digged a bit more.
It seems I am getting a race of
this kind: exception in guest happens
at the same time when the host's
SIGALRM arrives. KVM returns to
host with the exception somehow
"pending", but its still on ring3, not
switched to the ring0 handler.

Then from host I inject the interrupt
(which is what SIGALRM asks for),
and when I enter the guest, it throws
the pending exception instead of
executing the interrupt handler.
I suspect the bug is again on my side,
but I am not sure how to handle that
kind of race. I suppose I need to look
at some interruptibility state to find
out that the interrupt cannot be injected
at that time. But I can't find if KVM
exports the interruptibility state, other
than guest's IF/VIF flag, which is not
enough in this case.
Also I am a bit puzzled why I can't
see such race on an I7 CPU even
after disabling the unrestricted_guest.

Any ideas? :)

  parent reply	other threads:[~2021-06-21  2:34 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-12 22:49 guest/host mem out of sync on core2duo? stsp
2021-06-13 12:36 ` stsp
2021-06-14 17:06 ` Sean Christopherson
2021-06-14 17:32   ` stsp
2021-06-17 14:42     ` Sean Christopherson
2021-06-18 15:59       ` stsp
2021-06-18 21:07         ` Jim Mattson
2021-06-18 21:55           ` stsp
2021-06-18 22:06             ` Jim Mattson
2021-06-18 22:26               ` stsp
2021-06-18 22:32               ` Sean Christopherson
2021-06-19  0:11                 ` stsp
2021-06-19  0:54                   ` Sean Christopherson
2021-06-19  9:18                     ` stsp
2021-06-21  2:34           ` stsp [this message]
2021-06-21 22:33             ` exception vs SIGALRM race (was: Re: guest/host mem out of sync on core2duo?) Jim Mattson
2021-06-21 23:32               ` stsp
2021-06-22  0:27               ` stsp
2021-06-28 21:47                 ` Jim Mattson
2021-06-28 21:50                   ` stsp
2021-06-28 22:00                   ` stsp
2021-06-28 22:27                     ` Jim Mattson
2021-07-06 16:28                       ` Paolo Bonzini
2021-07-06 22:22                         ` stsp
2021-07-06 23:41                           ` Paolo Bonzini
2021-06-23 23:38               ` exception vs SIGALRM race (with test-case now!) stsp
2021-06-24  0:11                 ` stsp
2021-06-24  0:25                   ` stsp
2021-06-24 18:05                     ` exception vs SIGALRM race on core2 CPUs (with qemu-based test-case this time!) stsp
2021-06-24 18:07                     ` stsp
2021-06-25 23:35                       ` exception vs SIGALRM race on core2 CPUs (with fix!) stsp
2021-06-26  0:15                         ` Jim Mattson
2021-06-26  0:35                           ` stsp
2021-06-26 21:50                           ` stsp
2021-06-27 12:13                           ` stsp
2021-06-26 14:03               ` exception vs SIGALRM race (another patch) stsp

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=d5bf20f4-9aef-8e7e-8a8f-47d10510724e@yandex.ru \
    --to=stsp2@yandex.ru \
    --cc=jmattson@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=seanjc@google.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).