From patchwork Tue May 28 13:20:35 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafael Wysocki X-Patchwork-Id: 2624741 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 18A063FDBC for ; Tue, 28 May 2013 13:11:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934059Ab3E1NLo (ORCPT ); Tue, 28 May 2013 09:11:44 -0400 Received: from hydra.sisk.pl ([212.160.235.94]:53284 "EHLO hydra.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934023Ab3E1NLm (ORCPT ); Tue, 28 May 2013 09:11:42 -0400 Received: from vostro.rjw.lan (afeg45.neoplus.adsl.tpnet.pl [95.49.110.45]) by hydra.sisk.pl (Postfix) with ESMTPSA id D344FE3DB9; Tue, 28 May 2013 15:08:44 +0200 (CEST) From: "Rafael J. Wysocki" To: Giacomo Perale Cc: Zhang Rui , linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org Subject: Re: [regression, bisected] restore of disks after suspend-to-disk broken in 3.9.x Date: Tue, 28 May 2013 15:20:35 +0200 Message-ID: <1569319.PChVOz05me@vostro.rjw.lan> User-Agent: KMail/4.9.5 (Linux/3.10.0-rc3+; KDE/4.9.5; x86_64; ; ) In-Reply-To: References: <2552290.9fhTfGPlAk@vostro.rjw.lan> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On Tuesday, May 28, 2013 02:59:25 PM Giacomo Perale wrote: > 2013/5/28 Rafael J. Wysocki : > > On Monday, May 27, 2013 10:07:18 PM Giacomo Perale wrote: > >> 2013/5/27 Zhang Rui : > >> > On Sun, 2013-05-26 at 15:51 +0200, Giacomo Perale wrote: > >> >> Hello, > >> >> > >> >> after upgrading from 3.8.7 to 3.9.x I noticed some slightly longer > >> >> delays when resuming from suspend-to-disk and a few new error messages > >> >> in the logs: > >> >> > >> >> > >> >> Not having connected the issue with the previous error messages I > >> >> initially blamed the disk and replaced it with a new one thinking it > >> >> was broken, but the problem persisted so I started a bisection run > >> >> that pointed to this commit: > >> >> > >> >> > >> >> b8bb6cb999858043489c1ddef08eed2127559169 is the first bad commit > >> >> commit b8bb6cb999858043489c1ddef08eed2127559169 > >> >> Author: Zhang Rui > >> >> Date: Thu Nov 22 15:45:02 2012 +0800 > >> >> > >> >> step_wise: Unify the code for both throttle and dethrottle > >> >> > >> >> Signed-off-by: Zhang Rui > >> >> > >> > I do not see how this would affect the sata hibernation/resume. > >> > but anyway, would you please try the four patches in comment #10, #11, > >> > #12 and #13 in > >> > https://bugzilla.kernel.org/show_bug.cgi?id=58301 > >> > and check if they help? > >> > > >> > thanks, > >> > rui > >> > > >> > >> No luck, with git head and those four patches hibernation is > >> completely broken, the system doesn't even shut down, it just loses > >> the disks (I'm attaching what I could get from /proc/kmsg to this > >> email). > >> > >> With the fair_share governor or with step_wise _and_ commit > >> b8bb6cb999858043489c1ddef08eed2127559169 reverted everything is ok > >> again. > >> > >> I think there's something wrong in the commit logic (for example, why > >> are you checking for "instance->target != THERMAL_NO_TARGET" when > >> update_instance_for_throttle checked for "instance->target == > >> THERMAL_NO_TARGET"?) but my attempts to fix it failed, probably > >> because I'm not sure of what 'continue;' does inside a > >> list_for_each_entry macro. > > > > Can you please attach the output of acpidump from your system? > > > > Rafael > > > > > > Sure, here it is. Thanks! Can you please also check if the patch below makes any difference? Rafael --- drivers/thermal/step_wise.c | 3 +++ 1 file changed, 3 insertions(+) Index: linux-pm/drivers/thermal/step_wise.c =================================================================== --- linux-pm.orig/drivers/thermal/step_wise.c +++ linux-pm/drivers/thermal/step_wise.c @@ -131,6 +131,9 @@ static void thermal_zone_trip_update(str continue; old_target = instance->target; + if (!throttle && old_target == THERMAL_NO_TARGET) + continue; + instance->target = get_target_state(instance, trend, throttle); /* Activate a passive thermal instance */