From: Woody Suwalski <terraluna977@gmail.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: kernel 5.2+: suspend freeze in VMware Player.
Date: Sat, 23 Nov 2019 17:51:19 -0500 [thread overview]
Message-ID: <bc51bc4e-21e5-d6a9-22ee-7c1194deefc8@gmail.com> (raw)
Rafael, Thomas, this is the same VMware Player 15.2 freeze on suspend issue
I have been discussing with you in August.
It has surfaced after Thomas Gleixner's change in kernel 5.2
dfe0cf8b x86/ioapic: Implement irq_get irqchip_state() callback
It is still with us in 5.4, 100% repeatable on a second suspend after a
reboot.
I have traced it down to the ioapic_irq_get_chip_state() function, where
rentry.rr is stuck hi.
On the first suspend I can see that for IRQ9 the test exits with irr=0,
trigger=1, but on second and consecutive suspends it is returning
irr=1 trigger=1, so *state=1, and this results in a never-ending loop
in __synchronize_hardirq(), because inprogress is always 1.
I have been usig a "fix" to timeout in __synchronize_hardirq() after
64 iterations, and that seems to work OK (no side-effects noticed),
but of course is not addressing the underlying problem.
And the problem may be somewhere in VMware emulation code, returning bad
data?
Would you have ideas as to what should be the right setting for
IRQ9 in VM environment? Edge or level?
And which part of code is reading the "hardware" state from VMware?
OTOH, current implementation is not really safe, as the wait loop should
have
a timeout, or else it may get stuck. Should I provide my safety-exit patch?
Thanks, Woody
next reply other threads:[~2019-11-23 22:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-23 22:51 Woody Suwalski [this message]
2019-11-25 14:13 ` Rafael J. Wysocki
2019-11-26 2:48 ` Woody Suwalski
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=bc51bc4e-21e5-d6a9-22ee-7c1194deefc8@gmail.com \
--to=terraluna977@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=tglx@linutronix.de \
/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
Powered by JetHome