mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: "Barry K. Nathan" <barryn@pobox.com>
Cc: linux-kernel@vger.kernel.org, Len Brown <len.brown@intel.com>,
	Andrew Morton <akpm@osdl.org>,
	fastboot@lists.osdl.org, Dave Jones <davej@redhat.com>
Subject: Re: [PATCH 4/29] x86-i8259-shutdown
Date: 25 Jan 2005 04:40:14 -0700	[thread overview]
Message-ID: <m17jm1hh41.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <20050125104904.GB5906@ip68-4-98-123.oc.oc.cox.net>


Ok Looking at the code I have finally tracked where apci_power_off()
lives. drives/acpi/poweroff/sleep.c And it has companions in
drivers/acpi/hardware/hwsleep.c

Why I did not find this when I wall looking for things that
set pm_power_off earlier I haven't a clue because it showed up this
time.

One of the functions called by acpi_enter_sleep_state_prep has
this to say.
/******************************************************************************
 *
 * FUNCTION:    acpi_enter_sleep_state_prep
 *
 * PARAMETERS:  sleep_state         - Which sleep state to enter
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Prepare to enter a system sleep state (see ACPI 2.0 spec p 231)
 *              This function must execute with interrupts enabled.
 *              We break sleeping into 2 stages so that OSPM can handle
 *              various OS-specific tasks between the two steps.
 *
 ******************************************************************************/

Since I clearly have interrupts disabled at this point we clearly have
an issue.  Not if we were using apics we would never have had interrupts
enabled when we got here so this code as coded is also broken in
an SMP context.

Cool I wonder how many more bugs work on kexec can flush out?

So the question becomes where is a good place to call 
acpi_enter_sleep_state_prep()?


"Barry K. Nathan" <barryn@pobox.com> writes:

> On Tue, Jan 25, 2005 at 03:14:06AM -0700, Eric W. Biederman wrote:
> > "Barry K. Nathan" <barryn@pobox.com> writes:
> > 
> > > On Tue, Jan 25, 2005 at 01:35:00AM -0700, Eric W. Biederman wrote:
> > > > So I will ask again, as I did when Andrew first pointed this in my
> > > > direction.  What code path in the kernel could possibly care if we
> > > > disable the i8259 after we have disabled all of the other hardware in
> > > > the system.
> > > 
> > > This may be a foolish question, but, are there possibly any code paths
> > > in the *BIOS* that could care?
> > 
> > Fairly unlikely at this point, as the state we have traditionally
> > reprogrammed the i8259 to, delivers interrupts to different vectors
> > than the firmware uses.   So I don't see how telling it not
> > to deliver interrupts where the firmware won't expect them
> > is likely to change things.
> 
> FWIW I've noticed something quirky. I guess this is only likely to show
> up in a contrived scenario, but I have actually reproduced this (by
> accident, even), so maybe it's worth mentioning.
> 
> 1. System is booted with both APM and ACPI disabled. (To be exact, ACPI
> is not compiled into the kernel I tested in this case, and APM is, but
> the BIOS lacks APM support.)
> 2. Ultra-minimal /sbin/init does shutdown syscall.
> 3. "Shutdown: hda
>     Power down."
> 
> You (or I, at least) would expect things to stop here, but we enter the
> Twilight Zone instead:

So would I.
 
> 4. "Kernel panic - not syncing: Attempted to kill init!" (Nothing this
> weird ever happens if I have ACPI enabled. In that case it either
> freezes or properly shuts down.)

What lines are printed just before that?  It would be nice
to know which part of the kernel panic if we can.

At least if you can reproduce this that would be nice.

I wonder if APM is really disabled at this point.  I guess since
I have found the ACPI bug we can save the APM bug for later.

> 5. The admin (that's me) then tries to reboot box without resorting to the
> power or reset buttons. (Actually the chassis in this case doesn't have
> a reset button, and I want to avoid unnecessarily power-cycling the
> thing.)
> 
> Without the i8259 shutdown patch applied, I can reboot with Alt-SysRq-B.
> With the patch, the computer doesn't respond to Alt-SysRq-B and I have
> to use the power button.

That is probably the one legitimate glitch with this patch.  It disables
interrupts so the keyboard becomes unresponsive.  Of course if the
system is really powered down that is not an issue but...

> If anyone's interested, the source code to my minimal /sbin/init is
> here:
> http://bugme.osdl.org/attachment.cgi?id=4398&action=view

Interesting.  

I am wondering if you see the same symptoms if you make this
your /init in a initcpio.gz.  I am wondering if some of the
issues might be related to something not being shutdown properly.

> > It could be that ACPI AML code is trying something at an inappropriate 
> > time.  But I can not even find the ACPI soft power code path.  pm_power_off
> > never seems to get hooked. 
> > 
> > Or it could one of the other kexec related patches for all I know.
> 
> The problem occurs even with no other kexec patches applied. And
> applying all kexec patches except the i8259 shutdown patch fails to
> reproduce the problem.

Very odd.   I was wondering how many test cases had run, before I found
the acpi bug above.  If the problem was not 100% the correlation with
this patch might have been a fluke.  I just want to be certain.

> > Until I get a good data point or a reproducer I can't do anything.
> > It doesn't even make sense to drop the patch because then
> > I won't get a good data point.  And I won't know if similar symptoms
> > crop of if I need to do something else.
> 
> It's only happening on 1 of 4 tested boxes here, too (the other three
> are not affected, but they don't have the same motherboard either). :(

Well if you can help me track this down I would appreciate it.

Do you think you would have time to try some test patches?

Eric

  reply	other threads:[~2005-01-25 11:49 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-19  7:31 [PATCH 0/29] overview Eric W. Biederman
2005-01-19  7:31 ` [PATCH 1/29] x86-rename-apic_mode_exint Eric W. Biederman
2005-01-19  7:31   ` [PATCH 2/29] x86-local-apic-fix Eric W. Biederman
2005-01-19  7:31     ` [PATCH 3/29] x86_64-e820-64bit Eric W. Biederman
2005-01-19  7:31       ` [PATCH 4/29] x86-i8259-shutdown Eric W. Biederman
2005-01-19  7:31         ` [PATCH 5/29] x86_64-i8259-shutdown Eric W. Biederman
2005-01-19  7:31           ` [PATCH 6/29] x86-apic-virtwire-on-shutdown Eric W. Biederman
2005-01-19  7:31             ` [PATCH 7/29] x86_64-apic-virtwire-on-shutdown Eric W. Biederman
2005-01-19  7:31               ` [PATCH 8/29] vmlinux-fix-physical-addrs Eric W. Biederman
2005-01-19  7:31                 ` [PATCH 9/29] x86-vmlinux-fix-physical-addrs Eric W. Biederman
2005-01-19  7:31                   ` [PATCH 10/29] x86_64-vmlinux-fix-physical-addrs Eric W. Biederman
2005-01-19  7:31                     ` [PATCH 11/29] x86_64-entry64 Eric W. Biederman
2005-01-19  7:31                       ` [PATCH 12/29] x86-config-kernel-start Eric W. Biederman
2005-01-19  7:31                         ` [PATCH 13/29] x86_64-config-kernel-start Eric W. Biederman
2005-01-19  7:31                           ` [PATCH 14/29] kexec-kexec-generic Eric W. Biederman
2005-01-19  7:31                             ` [PATCH 15/29] x86-machine_shutdown Eric W. Biederman
2005-01-19  7:31                               ` [PATCH 16/29] x86-kexec Eric W. Biederman
2005-01-19  7:31                                 ` [PATCH 17/29] x86-crashkernel Eric W. Biederman
2005-01-19  7:31                                   ` [PATCH 18/29] x86_64-machine_shutdown Eric W. Biederman
2005-01-19  7:31                                     ` [PATCH 19/29] x86_64-kexec Eric W. Biederman
2005-01-19  7:31                                       ` [PATCH 20/29] x86_64-crashkernel Eric W. Biederman
2005-01-19  7:31                                         ` [PATCH 21/29] kexec-ppc-support Eric W. Biederman
2005-01-19  7:31                                           ` [PATCH 22/29] x86-crash_shutdown-nmi-shootdown Eric W. Biederman
2005-01-19  7:31                                             ` [PATCH 23/29] x86-crash_shutdown-snapshot-registers Eric W. Biederman
2005-01-19  7:31                                               ` [PATCH 24/29] x86-crash_shutdown-apic-shutdown Eric W. Biederman
2005-01-19  7:31                                                 ` [PATCH 25/29] crashdump-documentation Eric W. Biederman
2005-01-19  7:31                                                   ` [PATCH 26/29] crashdump-memory-preserving-reboot-using-kexec Eric W. Biederman
2005-01-19  7:31                                                     ` [PATCH 27/29] crashdump-routines-for-copying-dump-pages Eric W. Biederman
2005-01-19  7:31                                                       ` [PATCH 28/29] crashdump-elf-format-dump-file-access Eric W. Biederman
2005-01-19  7:31                                                         ` [PATCH 29/29] crashdump-linear-raw-format-dump-file-access Eric W. Biederman
2005-01-19 12:25                                       ` [PATCH 19/29] x86_64-kexec Andi Kleen
2005-01-20 15:50                                       ` Adrian Bunk
2005-01-20 18:06                                         ` [Fastboot] " Eric W. Biederman
2005-01-19 12:10                                 ` [PATCH 16/29] x86-kexec Hariprasad Nellitheertha
2005-01-19 18:17                                   ` [Fastboot] " Eric W. Biederman
2005-01-25  3:54             ` [PATCH 6/29] x86-apic-virtwire-on-shutdown Len Brown
2005-01-25  6:39               ` Eric W. Biederman
2005-01-25  7:36                 ` Len Brown
2005-01-25  9:11                   ` Eric W. Biederman
2005-01-25  3:32         ` [PATCH 4/29] x86-i8259-shutdown Len Brown
2005-01-25  3:59           ` Dave Jones
2005-01-25  6:30             ` Eric W. Biederman
2005-01-25  8:35             ` Eric W. Biederman
2005-01-25  9:43               ` Barry K. Nathan
2005-01-25 10:14                 ` Eric W. Biederman
2005-01-25 10:49                   ` Barry K. Nathan
2005-01-25 11:40                     ` Eric W. Biederman [this message]
2005-01-25 20:57                       ` Barry K. Nathan
2005-01-25 12:12                     ` Eric W. Biederman
2005-01-25 22:02                       ` Barry K. Nathan
2005-01-25 22:12                         ` Eric W. Biederman
2005-01-26 13:27                           ` Sytse Wielinga
2005-01-26 14:06                             ` Eric W. Biederman
2005-01-26 14:43                               ` Sytse Wielinga
2005-01-26 15:12                                 ` Eric W. Biederman
2005-01-26 22:58                                   ` Barry K. Nathan
2005-01-21  7:55 ` [PATCH] Reserving backup region for kexec based crashdumps Vivek Goyal
2005-01-21  7:54   ` [Fastboot] " Eric W. Biederman
2005-01-21 10:57     ` Vivek Goyal
2005-01-21 11:13       ` Eric W. Biederman
2005-01-23 10:14         ` Vivek Goyal
2005-01-26 17:21           ` Eric W. Biederman
2005-01-26 19:15             ` Andrew Morton
2005-01-27 13:45             ` Vivek Goyal
2005-01-27 20:45               ` Eric W. Biederman
2005-01-28 13:06                 ` Vivek Goyal
2005-01-28 20:29                   ` Eric W. Biederman
2005-02-01 15:17                     ` Vivek Goyal
2005-02-01 15:26                       ` Eric W. Biederman
2005-02-02  7:10                         ` Itsuro Oda
2005-02-02  7:49                           ` Koichi Suzuki
2005-02-02 15:24                             ` Eric W. Biederman
2005-02-03  7:28                               ` Itsuro Oda
2005-02-03  9:00                                 ` Eric W. Biederman
2005-02-03 23:18                                   ` Itsuro Oda
2005-02-04  0:41                                     ` Eric W. Biederman
2005-02-04  1:07                                     ` Itsuro Oda
2005-02-16  8:49                                   ` [PATCH] /proc/cpumem Itsuro Oda
2005-02-16 13:58                                     ` Eric W. Biederman
2005-02-17  0:43                                       ` Itsuro Oda
2005-02-17  9:55                                         ` [Fastboot] " Eric W. Biederman
2005-02-18  6:17                                           ` Itsuro Oda
2005-02-18  7:22                                             ` Eric W. Biederman
2005-02-17  0:17                                     ` YAMAMOTO Takashi
2005-02-17  5:58                                     ` [Fastboot] " Vivek Goyal
2005-02-17  6:18                                       ` Itsuro Oda
2005-02-17 18:18                                     ` Dave Jones
2005-02-17 19:46                                       ` [Fastboot] " Eric W. Biederman
2005-02-02 14:26                           ` [Fastboot] [PATCH] Reserving backup region for kexec based crashdumps Eric W. Biederman
2005-02-02 10:07                         ` Vivek Goyal
2005-02-02 15:42                           ` Eric W. Biederman
2005-02-03 14:47                             ` Vivek Goyal
2005-02-01  8:04                 ` Koichi Suzuki
2005-02-01  9:06                   ` Eric W. Biederman
2005-02-02  7:42                     ` Itsuro Oda
2005-02-02 14:45                       ` Eric W. Biederman
2005-02-04  0:23                         ` Itsuro Oda
2005-02-04  1:55                           ` Eric W. Biederman
2005-02-02  9:08                     ` Koichi Suzuki
2005-02-02 14:31                       ` Eric W. Biederman
2005-02-03  7:02               ` Hirokazu Takahashi
2005-02-03  9:01                 ` Vivek Goyal
2005-02-03  9:37                   ` Hirokazu Takahashi
2005-02-03 10:07                     ` Eric W. Biederman
2005-02-03  9:13                 ` Eric W. Biederman
2005-02-03 10:10                   ` Hirokazu Takahashi
2005-02-03 10:39                     ` Eric W. Biederman
2005-02-04 10:05                       ` Hirokazu Takahashi
2005-02-04 11:17                         ` Eric W. Biederman
2005-02-04 12:02                           ` Eric W. Biederman

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=m17jm1hh41.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=akpm@osdl.org \
    --cc=barryn@pobox.com \
    --cc=davej@redhat.com \
    --cc=fastboot@lists.osdl.org \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.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

Powered by JetHome