Project

General

Profile

Feature #1621

update acpica code to newer version (Joyent OS-441)

Added by Dan McDonald almost 8 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
kernel
Start date:
2011-10-10
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Joyent has updated acpica code from Intel for SmartOS. They've tested it in their own deployments, but there is power-management code that could use some community examination prior to push.


Related issues

Related to illumos gate - Bug #311: acpica components are using export restricted licenseResolved2010-10-07

Actions

History

#1

Updated by Rich Lowe almost 8 years ago

  • Project changed from OpenIndiana Distribution to illumos gate
  • Category deleted (OS/Net (Kernel and Userland))
#2

Updated by Dan McDonald almost 8 years ago

  • Category set to kernel

Generally speaking, this bug needs more testing than review. Special attention should be paid to previously-not-working hardware platforms, and suspend/resume behavior.

#3

Updated by Jon Strabala almost 8 years ago

I ran a long (about 12 day) stability test on the acpica code bits plus a small both a patch for #1333 (for apic_timer.c) without finding any issues.

This was on a E3 Sandy Bridge, e.g. Supermicro X9SCI/X9SCA with a Intel(R) Xeon(R) CPU E31270 @ 3.40GHz CPU

Note your acpia bits were not responsible nor were they the fix to bug #1333, but a patch worked out by for apic_timer.c by Aubrey Li ref: https://www.illumos.org/issues/1333#note-40 seems to solve #1333 and also work with the new acpica code bits.

#4

Updated by Gordon Ross almost 8 years ago

I have a laptop (Dell Precision M6300) on which oi151 works great,
suspend/resume and everything, so I tried this code. Regressions:

1: When I close the lid, it used to suspend, now it does not.
2: If I request suspend from gnome, it suspends, but then
resume appears to hang early on. Black screen, no disk
activity, keyboard caps lock etc. has no effect. Had to
hold down the power button and power cycle.

#5

Updated by Gordon Ross almost 8 years ago

I looked into this a little, and found some interesting resources:
http://www.acpica.org/download/acpica-reference.doc
Section 4.* in general has lots of relevant stuff.

4.2.5 "Execute all _PRW methods within the namespace..."
I don't think our ACPI kernel support is doing that.

4.4.1 "Partly because of these changes and because ACPICA will no
longer execute _PRW methods on behalf of the host, ACPICA itself no
longer attempts to differentiate between runtime and wake GPEs. This
identification is left to the host and the individual device drivers
as described in the following sections."

I suspect the change described there implies necessary but missing
changes in our system-specific acpi code.
(The bit about how we need to "execute all _PRW methods". I don't see
that in our code right now.)

4.4.1.1 has some detail on this, and (possibly) an error. It refers
to AcpiSetWakeGpe here and in a few other places, but that function is
not in the function reference. I suspect they meant to refer to the
new: AcpiSetupGpeForWake, but that's a guess on my part.

I think we're supposed to "execute all _PRW" methods and then call
AcpiSetupGpeForWake as appropriate.
I found some changes in DragonFly BSD that seem to support this:

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/29b0d8e7b398c0db96e877a1a0ff818fc557d619
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/3e32463a96bef8b193120b7f7ed7b3ca73522c65
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7a7d9bbd427dc2419972a0001a56101aefc68437

#6

Updated by Gordon Ross over 7 years ago

  • Subject changed from update acpica code to newer version (via Joyent) to update acpica code to newer version (Joyent OS-441)
#7

Updated by Gordon Ross over 7 years ago

  • Assignee changed from Dan McDonald to Gordon Ross

The regressions described in note-4 are now being tracked in issue #1838

#8

Updated by Gordon Ross over 7 years ago

This was originally going to be two change sets, the first being:
https://github.com/joyent/illumos-joyent/commit/31d33eaed41a460100b3656c83e754505dde6eda.patch
which would have the following commit info:

changeset:   13517:e3e9baee7176
tag:         tip
user:        Jerry Jelinek <jerry.jelinek@joyent.com>
date:        Tue Jun 28 14:38:20 2011 -0700

description:
    1621 update acpica code to newer version (Joyent OS-441)

and the second change set would be the fixes for
suspend/resume etc. as described in note 5.

However, in order to avoid having a change set with some
regressions, some RTI advocates asked that I combine them.

So the final, single change set is:

changeset:   13539:15b6c91053a3
tag:         tip
user:        Gordon Ross <gwr@nexenta.com>
date:        Thu Dec 01 22:58:02 2011 -0500

description:
    1621 update acpica code to newer version (Joyent OS-441)
    Reviewed by: Garrett D'Amore <garrett@nexenta.com>
    Reviewed by: Dan McDonald <danmcd@nexenta.com>
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Approved by: Garrett D'Amore <garrett@nexenta.com>
#9

Updated by Gordon Ross over 7 years ago

  • Status changed from New to Resolved
  • % Done changed from 60 to 100

Also available in: Atom PDF