Skip to contentSkip to conversation

The regression about EC GPE storm on the latest linus git tree

PATCH In review Alexey Starikovskiy 3 participants 4 messages Nov 13, 2008 – Nov 26, 2008 1 message not in the archive ACPI

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): 1226539214.4006.70.camel@yakui_zhao.sh.intel.com

#1 lore raw

Hi Yakui,

Does your latest kernel include yesterday pool of patches?

Thanks,
Alex.

Quoted 23 lines · Zhao Yakui

Hi, Alexey
I do some tests on the latest kernel and find that there exists the
EC GPE storm on the three laptops. And then EC will work in polling mode. One is Asus EEEPC 1000. The other are HP laptops.

I do the similar test on the previous kernel(for example:
2.6.27-rc6, 2.6.27.4) and there is no EC GPE storm on the three laptops. The EC works in EC GPE interrupt mode.
After the EC debug is used on the 2.6.27-rc6 kernel, I find that at
most 8 EC interrupts are triggered in each EC transaction(This includes the effective EC GPE interrupts). In such case it should not be regarded as EC GPE storm.

The attached are the dmesg info on the Asus EEEPC 1000. (One is
based on the latest git tree. One is based on 2.6.27-rc6 kernel).
If you need to investigate the root cause about the EC GPE storm,
please tell me what I should do. I will try my best to test the patch from you and give response.

Thanks.
Yakui

#2 lore raw

PATCH 1/1 ACPI: EC: count interrupts only if called from interrupt handler.

In reply to a message not in the archive

---

 drivers/acpi/ec.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/acpi/ec.c +2 -1
index cf41f9f..30f3ef2 100644
@@ -219,7 +219,8 @@ static void gpe_transaction(struct acpi_ec *ec, u8 status)
 	goto unlock;
 err:
 	/* false interrupt, state didn't change */
-	++ec->curr->irq_count;
+	if (in_interrupt())
+		++ec->curr->irq_count;
 unlock:
 	spin_unlock_irqrestore(&ec->curr_lock, flags);
 }
#3 lore raw

Re: [PATCH] ACPI: EC: count interrupts only if called from interrupt handler.

Quoted 1 line · Alexey Starikovskiy

Thanks for the patch.
After applying the patch, there is no EC GPE storm and EC will work
in EC GPE interrupt mode. It works as what we expected. Thanks for the patch again.

Quoted 25 lines

---

 drivers/acpi/ec.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/acpi/ec.c +2 -2
index cf41f9f..30f3ef2 100644
@@ -219,7 +219,8 @@ static void gpe_transaction(struct acpi_ec *ec, u8 status)
 	goto unlock;
 err:
 	/* false interrupt, state didn't change */
-	++ec->curr->irq_count;
+	if (in_interrupt())
+		++ec->curr->irq_count;
 unlock:
 	spin_unlock_irqrestore(&ec->curr_lock, flags);
 }
 
--

To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

reviewer
#4 lore raw

Re: [PATCH] ACPI: EC: count interrupts only if called from interrupt handler.

In reply to Alexey Starikovskiy

applied for 2.6.28

thanks,
-len

Quoted 22 lines · Alexey Starikovskiy

---

 drivers/acpi/ec.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/acpi/ec.c +2 -1
index cf41f9f..30f3ef2 100644
@@ -219,7 +219,8 @@ static void gpe_transaction(struct acpi_ec *ec, u8 status)
 	goto unlock;
 err:
 	/* false interrupt, state didn't change */
-	++ec->curr->irq_count;
+	if (in_interrupt())
+		++ec->curr->irq_count;
 unlock:
 	spin_unlock_irqrestore(&ec->curr_lock, flags);
 }