From: Peter Zijlstra <peterz@infradead.org>
To: Jiri Kosina <jikos@kernel.org>
Cc: Dongli Zhang <dongli.zhang@oracle.com>,
Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>,
Sagi Grimberg <sagi@grimberg.me>,
linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
Keith Busch <keith.busch@intel.com>,
Hannes Reinecke <hare@suse.de>, Christoph Hellwig <hch@lst.de>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
x86@kernel.org, "Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-pm@vger.kernel.org, Josh Poimboeuf <jpoimboe@redhat.com>
Subject: Re: "nosmt" breaks resuming from hibernation (was Re: [5.2-rc1 regression]: nvme vs. hibernation)
Date: Wed, 29 May 2019 10:56:18 +0200 [thread overview]
Message-ID: <20190529085618.GH2623@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <nycvar.YFH.7.76.1905282118070.1962@cbobk.fhfr.pm>
On Tue, May 28, 2019 at 09:22:14PM +0200, Jiri Kosina wrote:
> On Tue, 28 May 2019, Jiri Kosina wrote:
>
> > [ some x86/PM folks added ]
> >
> > I isolated this to 'nosmt' being present in the "outer" (resuming) kernel,
> > and am still not sure whether this is x86 issue or nvme/PCI/blk-mq issue.
> >
> > For the newcomers to this thread: on my thinkpad x270, 'nosmt' reliably
> > breaks resume from hibernation; after the image is read out from disk and
> > attempt is made to jump to the old kernel, machine reboots.
>
> Thomas figured it out (and this should be really more widespread than just
> my machine :) ).
>
> nosmt forces HT siblings to mwait, but that explodes after %cr3 change
> during resume, as the mwait target address is all of a sudden not valid
> anymore for neither of the hyperthreads.
ARGH!!! But also, you wrote:
> > I verified that it succesfully makes it to the point where restore_image()
> > is called from swsusp_arch_resume() (and verified that only BSP is alive
> > at that time), but the old kernel never comes back and triplefault-like
> > reboot happens.
which means that even without nosmt all 'other' CPUs are offline. And
when I look at resume_target_kernel() I see it call
hibernate_resume_nonboot_cpu_disable().
So how is the SMT offline different from that offline? afaict they all
get into play_dead()->native_play_dead()->mwait_play_dead().
next prev parent reply other threads:[~2019-05-29 8:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-24 15:22 [5.2-rc1 regression]: nvme vs. hibernation Jiri Kosina
2019-05-24 15:44 ` Keith Busch
2019-05-24 22:27 ` Jiri Kosina
2019-05-24 23:58 ` Dongli Zhang
2019-05-27 9:29 ` Jiri Kosina
2019-05-27 11:15 ` Jiri Kosina
2019-05-28 15:21 ` "nosmt" breaks resuming from hibernation (was Re: [5.2-rc1 regression]: nvme vs. hibernation) Jiri Kosina
2019-05-28 19:22 ` Jiri Kosina
2019-05-29 8:56 ` Peter Zijlstra [this message]
2019-05-29 9:20 ` Jiri Kosina
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=20190529085618.GH2623@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=axboe@kernel.dk \
--cc=dongli.zhang@oracle.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=jikos@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=kbusch@kernel.org \
--cc=keith.busch@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=sagi@grimberg.me \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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