<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/acpi/processor_idle.c, branch linux-2.6.27.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.27.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.27.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-05-26T21:27:07Z</updated>
<entry>
<title>clockevent: Prevent dead lock on clockevents_lock</title>
<updated>2010-05-26T21:27:07Z</updated>
<author>
<name>Suresh Siddha</name>
</author>
<published>2010-04-22T09:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=843447c62b771a9ad12f0e7f4a791804b4cc99f5'/>
<id>urn:sha1:843447c62b771a9ad12f0e7f4a791804b4cc99f5</id>
<content type='text'>
This is a merge of two mainline commits, intended
for stable@kernel.org submission for 2.6.27 kernel.

commit f833bab87fca5c3ce13778421b1365845843b976
and

commit 918aae42aa9b611a3663b16ae849fdedc67c2292
Changelog of both:

    Currently clockevents_notify() is called with interrupts enabled at
    some places and interrupts disabled at some other places.

    This results in a deadlock in this scenario.

    cpu A holds clockevents_lock in clockevents_notify() with irqs enabled
    cpu B waits for clockevents_lock in clockevents_notify() with irqs disabled
    cpu C doing set_mtrr() which will try to rendezvous of all the cpus.

    This will result in C and A come to the rendezvous point and waiting
    for B. B is stuck forever waiting for the spinlock and thus not
    reaching the rendezvous point.

    Fix the clockevents code so that clockevents_lock is taken with
    interrupts disabled and thus avoid the above deadlock.

    Also call lapic_timer_propagate_broadcast() on the destination cpu so
    that we avoid calling smp_call_function() in the clockevents notifier
    chain.

    This issue left us wondering if we need to change the MTRR rendezvous
    logic to use stop machine logic (instead of smp_call_function) or add
    a check in spinlock debug code to see if there are other spinlocks
    which gets taken under both interrupts enabled/disabled conditions.

    Signed-off-by: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
    Cc: "Brown Len" &lt;len.brown@intel.com&gt;
    Cc: stable@kernel.org
    LKML-Reference: &lt;1250544899.2709.210.camel@sbs-t61.sc.intel.com&gt;
    Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

    I got following warning on ia64 box:
      In function 'acpi_processor_power_verify':
      642: warning: passing argument 2 of 'smp_call_function_single' from
      incompatible pointer type

    This smp_call_function_single() was introduced by a commit
    f833bab87fca5c3ce13778421b1365845843b976:

    The problem is that the lapic_timer_propagate_broadcast() has 2 versions:
    One is real code that modified in the above commit, and the other is NOP
    code that used when !ARCH_APICTIMER_STOPS_ON_C3:

      static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) { }

    So I got warning because of !ARCH_APICTIMER_STOPS_ON_C3.

    We really want to do nothing here on !ARCH_APICTIMER_STOPS_ON_C3, so
    modify lapic_timer_propagate_broadcast() of real version to use
    smp_call_function_single() in it.

    Signed-off-by: Hidetoshi Seto &lt;seto.hidetoshi@jp.fujitsu.com&gt;
    Acked-by: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
    Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;

Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
</entry>
<entry>
<title>cpuidle: make AMC C1E work in processor_idle</title>
<updated>2009-06-12T03:01:21Z</updated>
<author>
<name>Shaohua Li</name>
</author>
<published>2009-06-02T02:51:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c9f0ff0caef2cc06e90edc7991f0360890febda1'/>
<id>urn:sha1:c9f0ff0caef2cc06e90edc7991f0360890febda1</id>
<content type='text'>
commit 87ad57bacb25c3f24c54f142ef445f68277705f0 upstream

When AMD C1E is enabled, local APIC timer will stop even in C1. This patch uses
broadcast ipi to replace local APIC timer in C1.

http://bugzilla.kernel.org/show_bug.cgi?id=13233

[ impact: avoid boot hang in AMD CPU with C1E enabled ]

Tested-by: Dmitry Lyzhyn &lt;thisistempbox@yahoo.com&gt;
Signed-off-by: Shaohua Li &lt;shaohua.li@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>cpuidle: fix AMD C1E suspend hang</title>
<updated>2009-06-12T03:01:21Z</updated>
<author>
<name>Shaohua Li</name>
</author>
<published>2009-05-19T08:09:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ec19648b3d8634cc4a08614a252c8739f76903c'/>
<id>urn:sha1:4ec19648b3d8634cc4a08614a252c8739f76903c</id>
<content type='text'>
commit 7d60e8ab0d5507229dfbdf456501cc378610fa01 upstream.

When AMD C1E is enabled, local APIC timer will stop even in C1. To avoid
suspend/resume hang, this patch removes C1 and replace it with a cpu_relax() in
suspend/resume path. This hasn't any impact in runtime path.

http://bugzilla.kernel.org/show_bug.cgi?id=13233

[ impact: avoid suspend/resume hang in AMD CPU with C1E enabled ]

Tested-by: Dmitry Lyzhyn &lt;thisistempbox@yahoo.com&gt;
Signed-off-by: Shaohua Li &lt;shaohua.li@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>cpuidle: update the last_state acpi cpuidle reflecting actual state entered</title>
<updated>2009-02-06T22:00:40Z</updated>
<author>
<name>Venkatesh Pallipadi</name>
</author>
<published>2009-01-27T16:38:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc2e4009300088813c3be2de80b01ddc2399999e'/>
<id>urn:sha1:fc2e4009300088813c3be2de80b01ddc2399999e</id>
<content type='text'>
commit addbad46ed0906cd584784423b9d0babc7476446

reflect the actual state entered in dev-&gt;last_state, when actaul state entered
is different from intended one.

Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Cc: Thomas Renninger &lt;trenn@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>acpi: trivial cleanups</title>
<updated>2008-08-15T00:29:06Z</updated>
<author>
<name>Pavel Machek</name>
</author>
<published>2008-08-12T10:24:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d0057413a7a277e104cf315faa1b55b60b4a5482'/>
<id>urn:sha1:d0057413a7a277e104cf315faa1b55b60b4a5482</id>
<content type='text'>
Trivial cleanups for ACPI. Fix misspelling in printk(), fix mismerge,
add file header.

AK: removed file header

Signed-off-by: Pavel Machek &lt;pavel@suse.cz&gt;
Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI/CPUIDLE: prevent setting pm_idle to NULL</title>
<updated>2008-07-28T15:31:58Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2008-07-27T21:47:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b032bf70df2e43149ce2b4e9a865b076c6140753'/>
<id>urn:sha1:b032bf70df2e43149ce2b4e9a865b076c6140753</id>
<content type='text'>
pm_idle_save resp. pm_idle_old can be NULL when the restore code in
acpi_processor_cst_has_changed() resp. cpuidle_uninstall_idle_handler()
is called. This can set pm_idle unconditinally to NULL, which causes the
kernel to panic when calling pm_idle in the x86 idle code. This was
covered by an extra check for !pm_idle in the x86 idle code, which was
removed during the x86 idle code refactoring.

Instead of restoring the pm_idle check in the x86 code prevent the
acpi/cpuidle code to set pm_idle to NULL.

Reported by: Dhaval Giani http://lkml.org/lkml/2008/7/2/309
Based on a debug patch from Ingo Molnar

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ftrace: disable tracing on acpi idle calls</title>
<updated>2008-07-26T12:42:21Z</updated>
<author>
<name>Steven Rostedt</name>
</author>
<published>2008-07-25T22:00:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dcf309974555d17019c6a8e1a425238f17990b71'/>
<id>urn:sha1:dcf309974555d17019c6a8e1a425238f17990b71</id>
<content type='text'>
The acpi idle waits calls local_irq_save and then uses mwait to go into
idle. The tracer gets reenabled at local_irq_save but does not detect that
the idle allows for wake ups.

This patch adds code to disable the tracing when acpi puts the CPU to idle.

Signed-off-by: Steven Rostedt &lt;srostedt@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>ACPI : Create "idle=nomwait" bootparam</title>
<updated>2008-07-16T21:27:05Z</updated>
<author>
<name>Zhao Yakui</name>
</author>
<published>2008-06-24T10:01:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da5e09a1b3e5a9fc0b15a3feb64e921ccc55ba74'/>
<id>urn:sha1:da5e09a1b3e5a9fc0b15a3feb64e921ccc55ba74</id>
<content type='text'>
"idle=nomwait" disables the use of the MWAIT
instruction from both C1 (C1_FFH) and deeper (C2C3_FFH)
C-states.

When MWAIT is unavailable, the BIOS and OS generally
negotiate to use the HALT instruction for C1,
and use IO accesses for deeper C-states.

This option is useful for power and performance
comparisons, and also to work around BIOS bugs
where broken MWAIT support is advertised.

http://bugzilla.kernel.org/show_bug.cgi?id=10807
http://bugzilla.kernel.org/show_bug.cgi?id=10914

Signed-off-by: Zhao Yakui &lt;yakui.zhao@intel.com&gt;
Signed-off-by: Li Shaohua &lt;shaohua.li@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI: Create "idle=halt" bootparam</title>
<updated>2008-07-16T21:27:05Z</updated>
<author>
<name>Zhao Yakui</name>
</author>
<published>2008-06-24T09:58:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1e3b377ad48febba6f91b8ae42c44ee4d4ab45e'/>
<id>urn:sha1:c1e3b377ad48febba6f91b8ae42c44ee4d4ab45e</id>
<content type='text'>
"idle=halt" limits the idle loop to using
the halt instruction.  No MWAIT, no IO accesses,
no C-states deeper than C1.

If something is broken in the idle code,
"idle=halt" is a less severe workaround
than "idle=poll" which disables all power savings.

Signed-off-by: Zhao Yakui &lt;yakui.zhao@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI: change processors from array to per_cpu variable</title>
<updated>2008-07-16T21:27:01Z</updated>
<author>
<name>Mike Travis</name>
</author>
<published>2008-06-09T23:22:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=706546d02384b64e083bd9130c56eaa599c66038'/>
<id>urn:sha1:706546d02384b64e083bd9130c56eaa599c66038</id>
<content type='text'>
Change processors from an array sized by NR_CPUS to a per_cpu variable.

Signed-off-by: Mike Travis &lt;travis@sgi.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
</content>
</entry>
</feed>
