From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: "Mark M. Hoffman" <mhoffman@lightlink.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
Rudolf Marek <r.marek@assembler.cz>,
Jiri Slaby <jirislaby@gmail.com>, Greg KH <greg@kroah.com>,
Kernel development list <linux-kernel@vger.kernel.org>,
lm-sensors@lm-sensors.org,
Andrew Morton <akpm@linux-foundation.org>,
Linux-pm mailing list <linux-pm@lists.linux-foundation.org>
Subject: Re: [lm-sensors] broken suspend [Was: 2.6.24-rc2-mm1]
Date: Wed, 21 Nov 2007 01:00:41 +0100 [thread overview]
Message-ID: <200711210100.43049.rjw@sisk.pl> (raw)
In-Reply-To: <20071120131520.GC12077@jupiter.solarsys.private>
On Tuesday, 20 of November 2007, Mark M. Hoffman wrote:
> Hi all:
>
> * Alan Stern <stern@rowland.harvard.edu> [2007-11-19 15:27:14 -0500]:
> > On Mon, 19 Nov 2007, Rudolf Marek wrote:
> >
> > > Hello all,
> > > >>> gives coretemp_cpu_callback -> coretemp_device_remove ->
> > > >>> platform_device_unregister, so coretemp seems to be what I have and you don't.
> > > >
> > > > Yes.
> > > >
> > > > For the coretemp developers: coretemp_cpu_callback() needs to be more
> > > > careful about what it does. During a system sleep transition (suspend,
> > > > hibernate, resume) it isn't possible to register or unregister a
> > > > device. Attempts to register will fail and attempts to unregister will
> > > > block until the system sleep is over -- and for this callback that
> > > > means hanging.
> > >
> > > Well I wrote the driver. Thanks for the clarification. If I recall correctly I
> > > looked how this part should be done from others drivers. Now while checking
> > > what happened to the file, seems Rafael added something related.
> > >
> > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d
> >
> > That does look like it was meant for exactly this sort of situation.
> >
> > > > It's not clear what the best way is to fix this. Perhaps the CPU
> > > > notification should be sent along with a special flag indicating that
> > > > the CPU transition is part of a system sleep (although this seems
> > > > racy). Perhaps the driver should notice when a system sleep begins,
> > > > and defer all CPU-change handling until after the sleep is over.
> > >
> > > maybe it does exist? CPU_DOWN_PREPARE ?
> > >
> > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/cpu-hotplug.txt;hb=HEAD
> > >
> > > Unfortunately I'm not very familiar with this, calling the
> > > coretemp_device_remove from CPU_DOWN_PREPARE would help? Looking at microcode
> > > driver, seems it just hide sysfs interface from user.
>
> AFAICT from that documentation, it would have been better to unregister
> the device on CPU_DOWN_PREPARE anyway. CPU_DEAD seems to be too late -
> it's already gone by then.
>
> > I'm not sure exactly what you want to do here. But it seems like a
> > waste to unregister the coretemp devices at the start of a system sleep
> > and then register them back at the end.
> >
> > Could you simply leave the devices registered throughout the entire
> > sleep? Of course, at the end you would have to check that all the CPUs
> > really did come back up, and unregister the devices for the CPUs that
> > are still offline.
>
> Is it possible to unregister a driver on CPU_DOWN_PREPARE_FROZEN?
No. In that case the suspend core is holding the device's mutex and your
attempt to unregister it will deadlock with it.
Do you _have_ _to_ unregister the device at all? Why don't you just leave
it registered on CPU_DOWN_PREPARE_FROZEN? The CPU is not going away
physically in this case and it's _guaranteed_ that _cpu_up() will be called on
it as soon as the hibernation image is ready or we are back from suspend.
> If so, then the simplest fix would be the patch below (Jiri: feel free to
> try it). Otherwise it would take a bit of refactoring to bring the sysfs
> interface down/up for suspend/resume.
>
> commit ce9c7b78c839a6304696d90083eac08baad524ce
> Author: Mark M. Hoffman <mhoffman@lightlink.com>
> Date: Tue Nov 20 07:51:50 2007 -0500
>
> hwmon: (coretemp) fix suspend/resume hang
>
> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
I'd do it like this:
> diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
> index 5c82ec7..afe2d31 100644
> --- a/drivers/hwmon/coretemp.c
> +++ b/drivers/hwmon/coretemp.c
> @@ -338,10 +338,12 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
> switch (action) {
> case CPU_ONLINE:
> case CPU_ONLINE_FROZEN:
> + case CPU_DOWN_FAILED:
> coretemp_device_add(cpu);
+ case CPU_DOWN_FAILED_FROZEN:
> break;
> - case CPU_DEAD:
> - case CPU_DEAD_FROZEN:
> + case CPU_DOWN_PREPARE:
> coretemp_device_remove(cpu);
+ case CPU_DOWN_PREPARE_FROZEN:
> break;
> }
Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
next prev parent reply other threads:[~2007-11-20 23:43 UTC|newest]
Thread overview: 148+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-14 1:59 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 3:12 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-14 3:49 ` 2.6.24-rc2-mm1 Greg KH
2007-11-14 4:39 ` 2.6.24-rc2-mm1 Matthew Dharm
2007-11-14 5:33 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-14 8:23 ` 2.6.24-rc2-mm1 Matthew Dharm
2007-11-14 9:23 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-15 17:15 ` 2.6.24-rc2-mm1 Matthew Dharm
2007-11-15 18:14 ` 2.6.24-rc2-mm1 Boaz Harrosh
2007-11-15 21:42 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-14 4:18 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-14 20:29 ` 2.6.24-rc2-mm1 mark gross
2007-11-14 20:40 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-15 17:22 ` 2.6.24-rc2-mm1 mark gross
2007-11-15 20:05 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-15 17:23 ` 2.6.24-rc2-mm1 mark gross
2007-11-15 19:19 ` 2.6.24-rc2-mm1 mark gross
2007-11-15 21:40 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-15 22:56 ` 2.6.24-rc2-mm1 mark gross
2007-11-15 23:01 ` [PATCH] pm-qos-remove-locks-around-blocking-notifier.patch ... was 2.6.24-rc2-mm1 mark gross
2007-11-14 3:40 ` [PATCH] Fix build failure when CONFIG_INFINIBAND_IPOIB_CM is not defined Tony Breeds
2007-11-15 14:49 ` Mel Gorman
2007-11-14 3:41 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-14 4:55 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 5:10 ` 2.6.24-rc2-mm1 Ulrich Drepper
2007-11-14 5:27 ` 2.6.24-rc2-mm1 Gabriel C
2007-11-14 5:45 ` 2.6.24-rc2-mm1 Zan Lynx
2007-11-14 6:18 ` 2.6.24-rc2-mm1 Dave Young
2007-11-14 6:38 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 6:47 ` 2.6.24-rc2-mm1 Dave Young
2007-11-14 8:41 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 9:32 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 9:36 ` 2.6.24-rc2-mm1 Dave Young
2007-11-14 16:59 ` 2.6.24-rc2-mm1 Greg KH
2007-11-14 18:38 ` 2.6.24-rc2-mm1 Kay Sievers
2007-11-14 19:19 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 21:27 ` 2.6.24-rc2-mm1 Kay Sievers
2007-11-15 1:01 ` 2.6.24-rc2-mm1 Dave Young
2007-11-15 2:38 ` 2.6.24-rc2-mm1 Kay Sievers
2007-11-15 3:11 ` 2.6.24-rc2-mm1 Dave Young
2007-11-15 8:14 ` 2.6.24-rc2-mm1 Dave Young
2007-11-15 8:51 ` 2.6.24-rc2-mm1 Kay Sievers
2007-11-15 17:06 ` 2.6.24-rc2-mm1 Greg KH
2007-11-15 17:16 ` 2.6.24-rc2-mm1 Kay Sievers
2007-11-15 18:59 ` 2.6.24-rc2-mm1 Greg KH
2007-11-14 6:32 ` [PATCH] [2.6.24-rc2-mm1] Fix dependencies for FSL_DMA Olof Johansson
2007-11-14 8:56 ` 2.6.24-rc2-mm1 -- mkfs failing on variety of fs types Andy Whitcroft
2007-11-14 10:28 ` Andrew Morton
2007-11-14 10:46 ` Dmitry Monakhov
2007-11-14 14:40 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 14:59 ` 2.6.24-rc2-mm1 Matthias Urlichs
2007-11-14 15:04 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 15:43 ` 2.6.24-rc2-mm1 Matthias Urlichs
2007-11-14 15:49 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 16:29 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 16:39 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 16:40 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 17:02 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 17:38 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-14 18:19 ` 2.6.24-rc2-mm1 Greg KH
2007-11-15 19:23 ` 2.6.24-rc2-mm1 Greg KH
2007-11-15 21:41 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-15 21:53 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-15 22:04 ` 2.6.24-rc2-mm1 Jiri Kosina
2007-11-16 0:39 ` 2.6.24-rc2-mm1 Dave Young
2007-11-16 0:49 ` 2.6.24-rc2-mm1 Greg KH
2007-11-16 0:55 ` 2.6.24-rc2-mm1 Dave Young
2007-11-14 19:16 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-14 20:29 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-14 20:55 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-14 22:48 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-15 17:36 ` 2.6.24-rc2-mm1 Jan Blunck
2007-11-15 18:36 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-15 21:24 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-15 21:34 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-16 5:29 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-16 14:03 ` 2.6.24-rc2-mm1 Jan Blunck
2007-11-16 20:11 ` 2.6.24-rc2-mm1 Torsten Kaiser
2007-11-14 20:24 ` broken suspend [Was: 2.6.24-rc2-mm1] Jiri Slaby
2007-11-14 20:36 ` Andrew Morton
2007-11-14 21:48 ` Rafael J. Wysocki
2007-11-15 23:59 ` Jiri Slaby
2007-11-16 0:38 ` Greg KH
2007-11-16 16:10 ` Alan Stern
2007-11-17 15:08 ` Jiri Slaby
2007-11-17 15:12 ` Jiri Slaby
2007-11-17 16:13 ` Alan Stern
2007-11-17 20:37 ` Rafael J. Wysocki
2007-11-17 21:58 ` Alan Stern
2007-11-18 12:42 ` Jiri Slaby
2007-11-18 13:06 ` Jiri Slaby
2007-11-18 13:42 ` Rafael J. Wysocki
2007-11-18 13:53 ` Jiri Slaby
2007-11-18 15:03 ` Rafael J. Wysocki
2007-11-18 14:49 ` Jiri Slaby
2007-11-18 15:23 ` Rafał J. Wysocki
2007-11-18 15:15 ` Jiri Slaby
2007-11-18 17:07 ` Alan Stern
2007-11-18 19:09 ` Jiri Slaby
2007-11-18 22:27 ` Jiri Slaby
2007-11-19 3:04 ` Alan Stern
2007-11-19 20:01 ` Rudolf Marek
2007-11-19 20:27 ` Alan Stern
2007-11-20 13:15 ` [lm-sensors] " Mark M. Hoffman
2007-11-21 0:00 ` Rafael J. Wysocki [this message]
2007-11-21 15:54 ` Alan Stern
2007-11-21 19:19 ` Rafael J. Wysocki
2007-11-26 8:57 ` Jiri Slaby
2007-11-19 21:53 ` Rafael J. Wysocki
2007-11-18 22:27 ` Rafael J. Wysocki
2007-11-18 22:12 ` Jiri Slaby
2007-11-18 22:42 ` Rafael J. Wysocki
2007-11-15 4:29 ` 2.6.24-rc2-mm1 (memory hotplug x86_64/vmemmap fix) KAMEZAWA Hiroyuki
2007-11-15 5:39 ` Kamalesh Babulal
2007-11-15 8:56 ` Andrew Morton
2007-11-15 9:18 ` KAMEZAWA Hiroyuki
2007-11-15 10:30 ` [PATCH][2.6.24-rc2-mm1] memory hotplug x86_64 fix [0/3] KAMEZAWA Hiroyuki
2007-11-15 10:33 ` [PATCH][2.6.24-rc2-mm1] memory hotplug x86_64 fix [1/3] memory_add_physaddr_to_nid export for acpi memhotplug.ko KAMEZAWA Hiroyuki
2007-11-15 10:35 ` [PATCH][2.6.24-rc2-mm1] memory hotplug x86_64 fix [2/3] fix section mismatch in vmammap_allock_block KAMEZAWA Hiroyuki
2007-11-16 0:53 ` Andrew Morton
2007-11-16 4:45 ` KAMEZAWA Hiroyuki
2007-11-15 10:36 ` [PATCH][2.6.24-rc2-mm1] memory hotplug x86_64 fix [3/3] fix section mismatch in init_memory_mapping KAMEZAWA Hiroyuki
2007-11-16 0:59 ` Andrew Morton
2007-11-16 5:09 ` KAMEZAWA Hiroyuki
2007-11-15 9:39 ` 2.6.24-rc2-mm1 (memory hotplug x86_64/vmemmap fix) Andy Whitcroft
2007-11-15 10:05 ` KAMEZAWA Hiroyuki
2007-11-15 10:02 ` 2.6.24-rc2-mm1 -- strange apparent network failures Andy Whitcroft
2007-11-16 0:28 ` Kevin Winchester
2007-11-16 0:44 ` Andrew Morton
2007-11-16 1:01 ` Kevin Winchester
2007-11-16 1:09 ` Andrew Morton
2007-11-17 5:16 ` Andrew Morgan
2007-11-17 12:48 ` Kevin Winchester
2007-11-17 23:52 ` Andrew Morgan
2007-11-18 0:50 ` Kevin Winchester
2007-11-18 1:17 ` Kevin Winchester
2007-11-18 1:57 ` Andrew Morgan
2007-11-18 1:23 ` Kevin Winchester
2007-11-17 13:57 ` Andy Whitcroft
2007-11-16 1:21 ` Tom
2007-11-15 10:50 ` 2.6.24-rc2-mm1 -- QLogics ISP1020 gone missing Andy Whitcroft
2007-11-15 19:25 ` 2.6.24-rc2-mm1 Greg KH
2007-11-15 20:47 ` 2.6.24-rc2-mm1 Andrew Morton
2007-11-16 0:01 ` 2.6.24-rc2-mm1 Greg KH
2007-11-15 22:25 ` 2.6.24-rc2-mm1: undefined reference to `local_apic_timer_c2_ok' Mariusz Kozlowski
2007-11-15 22:49 ` Len Brown
2007-11-15 23:35 ` Mariusz Kozlowski
2007-11-15 22:34 ` [PATCH] parisc: balance parenthesis in pte_free_kernel() Mariusz Kozlowski
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=200711210100.43049.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=akpm@linux-foundation.org \
--cc=greg@kroah.com \
--cc=jirislaby@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=lm-sensors@lm-sensors.org \
--cc=mhoffman@lightlink.com \
--cc=r.marek@assembler.cz \
--cc=stern@rowland.harvard.edu \
/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
all inboxes | Powered by JetHome®