public inbox for linux-acpi@vger.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: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20081126063522.GA23611@localhost>
     [not found] ` <20081126135508.GA1891@localhost>
     [not found]   ` <20081126152043.c92ae839.akpm@linux-foundation.org>
2008-12-02  2:45     ` [PATCH 2.6.28-rc6] ACPICA: don't cond_resched() when irqs_disabled() 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox