All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mikael Pettersson <mikpe@csd.uu.se>
To: ak@suse.de, linux-kernel@vger.kernel.org, pavel@suse.cz,
	torvalds@transmeta.com
Subject: Re: Switch APIC to driver model (and make S3 sleep with APIC on)
Date: Tue, 28 Jan 2003 02:21:59 +0100 (MET)	[thread overview]
Message-ID: <200301280121.CAA13798@harpo.it.uu.se> (raw)

On Mon, 20 Jan 2003 23:25:27 +0100, Pavel Machek wrote:
>This switches apic code to driver model, cleans code up a lot, and
>makes S3 while apic is used work. Please apply,

Please don't apply this. It breaks stuff:

1. apic_suspend() unconditionally calls disable_apic_nmi_watchdog()
   apic_resume() unconditionally calls setup_apic_nmi_watchdog()
   apic_pm_state.perfctr_pmdev removed

   - You're calling local-APIC NMI watchdog procedures even if
     the local-APIC NMI watchdog isn't active. Bad.
   - You're hardcoding that the local-APIC NMI watchdog is the
     only possible sub-client of the local APIC. Not true.
   - perfctr_pmdev exists precisely to handle both these cases
     in a clean way.

2. You unconditionally register apic_driver with its suspend/resume
   methods through a device_initcall().

   This breaks if a UP_APIC or SMP kernel runs on a CPU with no or
   an unusable local APIC. apic_pm_init2() does a runtime check
   for successful init before doing a pm_register().

3. You severed the link between the PM API and the local APIC.

   This breaks APM suspend when the local APIC is enabled. The
   machine will hang (or immediately resume). I tested this, and
   the driver model "stuff" simply doesn't do the right thing yet.

I you just want SOFTWARE_SUSPEND to work, why not simply post the
appropriate PM_SUSPEND and PM_RESUME events?
That should work without any changes to apic.c or nmi.c.

/Mikael

             reply	other threads:[~2003-01-28  1:12 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-28  1:21 Mikael Pettersson [this message]
2003-01-28  9:26 ` Switch APIC to driver model (and make S3 sleep with APIC on) Pavel Machek
2003-02-02 12:42 ` Pavel Machek
2003-02-03 10:32   ` John Levon
2003-02-03 15:40     ` Pavel Machek
2003-02-03 20:20       ` John Levon
2003-02-03 21:18         ` Pavel Machek
2003-02-03 23:43           ` John Levon
2003-02-05 21:39             ` Pavel Machek
2003-02-07 11:18               ` John Levon
2003-02-03 12:02   ` Zwane Mwaikambo
2003-02-04 22:55     ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2003-01-28 12:19 Mikael Pettersson
2003-01-29 20:18 ` Pavel Machek
2003-01-29 22:42   ` John Levon
2003-01-29 22:51     ` Pavel Machek
2003-01-20 22:25 Pavel Machek

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=200301280121.CAA13798@harpo.it.uu.se \
    --to=mikpe@csd.uu.se \
    --cc=ak@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@suse.cz \
    --cc=torvalds@transmeta.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.