All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wu Fengguang <fengguang.wu@intel.com>
To: Len Brown <lenb@kernel.org>
Cc: "Zhao, Yakui" <yakui.zhao@intel.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"Lin, Ming M" <ming.m.lin@intel.com>,
	"Zhang, Rui" <rui.zhang@intel.com>,
	"Li, Shaohua" <shaohua.li@intel.com>
Subject: Re: [PATCH 2.6.28-rc6] ACPICA: don't cond_resched() when irqs_disabled()
Date: Fri, 19 Dec 2008 19:01:45 +0800	[thread overview]
Message-ID: <20081219110145.GA14076@localhost> (raw)
In-Reply-To: <alpine.LFD.2.00.0812190326000.6312@localhost.localdomain>

Hi Len,

FYI: this patch from Lin Ming will generate the following messages:

on closing lid =>                                                                                                                
                                                                                                                                 
[ 8993.764829] irq status before SMI: enable                                                                                     
[ 8993.768028] irq status after SMI: disable, value: 0xF3                                                                        
                                                                                                                                     
on opening lid =>                                                                                                                    
                                                                                                                                     
[ 8987.590636] irq status before SMI: enable                                                                                         
[ 8987.669829] irq status after SMI: enable, value: 0xF3                                                                             

---
 drivers/acpi/executer/exregion.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

--- linux-2.6.orig/drivers/acpi/executer/exregion.c
+++ linux-2.6/drivers/acpi/executer/exregion.c
@@ -300,8 +300,20 @@ acpi_ex_system_io_space_handler(u32 func
 
 	case ACPI_WRITE:
 
+		if (address == 0xB2) {
+			printk("irq status before SMI: %s\n",
+				irqs_disabled() ? "disable" : "enable");
+		}
+
 		status = acpi_os_write_port((acpi_io_address) address,
 					    (u32) * value, bit_width);
+
+		if (address == 0xB2) {
+			printk("irq status after SMI: %s, value: 0x%X\n",
+				irqs_disabled() ? "disable" : "enable",
+				(u32) *value);
+		}
+
 		break;
 
 	default:

We are now exploring how the Windows execution path manages to avoid this bug.

Thanks,
Fengguang

On Fri, Dec 19, 2008 at 10:38:18AM +0200, Len Brown wrote:
> >     The issue on Fengguang's laptop is different with that on the box of
> > T61.  On Fengguang's laptop after evaluating one ACPI object(GPE
> > _L18object), the irq is disabled mystically. After some investigations
> > we find that it is caused by SMI(The SMI will be triggered while
> > evaluating the ACPI object. And this issue is also related with Video). 
> 
> Interesting.
> I hadn't realized you root-caused that failure.
> This is good to know, but the fact that SMM can
> leave interrupts disabled is frightening.
> 
> If the BIOS SMM on that box disables interrupts when
> random AML is run, then it is going to run into
> all kinds of other problems in addition to this one...
> 
> Hopefully the BIOS bugs is fixed by a BIOS update...
> 
> >     If the boot option of "noapic" is added on the box of bug12252, the
> > irq_router_resume will be called, in which the _CRS/_SRS object will be
> > evaluated. But unfortunately the irq is disabled when irq_router_resume
> > is called. 
> 
> Right.  I forced the T61 to run into this problem by forcing
> it to use PIC mode and suspending -- for it doesn't use the links
> in IOAPIC mode.  Many other systems do use the links in default
> mode, however, so I'm surprised that we had not heard more about
> this failure.
> 
> Now that I search for acpi_ps_complete_op() on kerneloops.org,
> I see that just a few people have run into it.
> 
> thanks,
> -- Len Brown, Intel Open Source Technology Center> 

  reply	other threads:[~2008-12-19 12:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-26  6:35 [PATCH 2.6.28-rc6] ACPICA: don't cond_resched() when irqs_disabled() Wu Fengguang
2008-11-26 13:55 ` Wu Fengguang
2008-11-26 23:20   ` Andrew Morton
2008-12-02  2:45     ` Wu Fengguang
2008-12-19  5:22   ` Len Brown
2008-12-19  7:02     ` Zhao Yakui
2008-12-19  8:38       ` Len Brown
2008-12-19 11:01         ` Wu Fengguang [this message]
2008-12-19 18:24           ` Len Brown
2008-12-20  0:28             ` Wu Fengguang
2008-12-19 13:51         ` Wu Fengguang
2008-12-19 18:35           ` Len Brown
2008-12-20  0:34             ` Wu Fengguang
2009-01-01 19:39           ` Robert Hancock

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=20081219110145.GA14076@localhost \
    --to=fengguang.wu@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=ming.m.lin@intel.com \
    --cc=rui.zhang@intel.com \
    --cc=shaohua.li@intel.com \
    --cc=yakui.zhao@intel.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.