<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/acpi/processor_idle.c, branch linux-2.6.31.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.31.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.31.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-04-01T22:55:53Z</updated>
<entry>
<title>ACPI: Be in TS_POLLING state during mwait based C-state entry</title>
<updated>2010-04-01T22:55:53Z</updated>
<author>
<name>Pallipadi, Venkatesh</name>
</author>
<published>2010-02-10T18:35:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54b663bdc94f94bf4d77566ec42d30d22b68ff8f'/>
<id>urn:sha1:54b663bdc94f94bf4d77566ec42d30d22b68ff8f</id>
<content type='text'>
commit d306ebc28649b89877a22158fe0076f06cc46f60 upstream.

ACPI deep C-state entry had a long standing bug/missing feature, wherein we were sending
resched IPIs when an idle CPU is in mwait based deep C-state. Only mwait based C1 was using
the write to the monitored address to wake up mwait'ing CPU.

This patch changes the code to retain TS_POLLING bit if we are entering an mwait based
deep C-state.

The patch has been verified to reduce the number of resched IPIs in general and also
improves the performance/power on workloads with low system utilization (i.e., when mwait based
deep C-states are being used).

Fixes "netperf ~50% regression with 2.6.33-rc1, bisect to 1b9508f"
http://marc.info/?l=linux-kernel&amp;m=126441481427331&amp;w=4

Reported-by: Lin Ming &lt;ming.m.lin@intel.com&gt;
Tested-by: Alex Shi &lt;alex.shi@intel.com&gt;
Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@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>clockevent: Prevent dead lock on clockevents_lock</title>
<updated>2009-08-19T16:15:10Z</updated>
<author>
<name>Suresh Siddha</name>
</author>
<published>2009-08-17T21:34:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f833bab87fca5c3ce13778421b1365845843b976'/>
<id>urn:sha1:f833bab87fca5c3ce13778421b1365845843b976</id>
<content type='text'>
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;
Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Cc: "Pallipadi Venkatesh" &lt;venkatesh.pallipadi@intel.com&gt;
Cc: "Brown Len" &lt;len.brown@intel.com&gt;
LKML-Reference: &lt;1250544899.2709.210.camel@sbs-t61.sc.intel.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>Merge branches 'acerhdf', 'acpi-pci-bind', 'bjorn-pci-root', 'bugzilla-12904', 'bugzilla-13121', 'bugzilla-13396', 'bugzilla-13533', 'bugzilla-13612', 'c3_lock', 'hid-cleanups', 'misc-2.6.31', 'pdc-leak-fix', 'pnpacpi', 'power_nocheck', 'thinkpad_acpi', 'video' and 'wmi' into release</title>
<updated>2009-06-24T05:19:50Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2009-06-24T05:19:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fbe8cddd2d85979d273d7937a2b8a47498694d91'/>
<id>urn:sha1:fbe8cddd2d85979d273d7937a2b8a47498694d91</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ACPI: idle: rename lapic timer workaround routines</title>
<updated>2009-06-18T05:01:42Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2009-05-15T06:08:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e275cc4e8e20f82740bf40ae2f5695e9e35ff09'/>
<id>urn:sha1:7e275cc4e8e20f82740bf40ae2f5695e9e35ff09</id>
<content type='text'>
cosmetic only.  The lapic_timer workaround routines
are specific to the lapic_timer, and are not acpi-generic.

old:

acpi_timer_check_state()
acpi_propagate_timer_broadcast()
acpi_state_timer_broadcast()

new:

lapic_timer_check_state()
lapic_timer_propagate_broadcast()
lapic_timer_state_broadcast()

also, simplify the code in acpi_processor_power_verify()
so that lapic_timer_check_state() is simply called
from one place for all valid C-states, including C1.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI: Disable ARB_DISABLE on platforms where it is not needed</title>
<updated>2009-05-28T01:57:30Z</updated>
<author>
<name>Pallipadi, Venkatesh</name>
</author>
<published>2009-05-22T00:09:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ee1ca48fae7e575d5e399d4fdcfe0afc1212a64c'/>
<id>urn:sha1:ee1ca48fae7e575d5e399d4fdcfe0afc1212a64c</id>
<content type='text'>
ARB_DISABLE is a NOP on all of the recent Intel platforms.

For such platforms, reduce contention on c3_lock
by skipping the fake ARB_DISABLE.

Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>cpuidle: fix AMD C1E suspend hang</title>
<updated>2009-05-27T03:45:33Z</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=7d60e8ab0d5507229dfbdf456501cc378610fa01'/>
<id>urn:sha1:7d60e8ab0d5507229dfbdf456501cc378610fa01</id>
<content type='text'>
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;
</content>
</entry>
<entry>
<title>cpuidle: makes AMD C1E work in acpi_idle</title>
<updated>2009-05-27T03:38:56Z</updated>
<author>
<name>Shaohua Li</name>
</author>
<published>2009-05-19T08:09:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=87ad57bacb25c3f24c54f142ef445f68277705f0'/>
<id>urn:sha1:87ad57bacb25c3f24c54f142ef445f68277705f0</id>
<content type='text'>
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;
</content>
</entry>
<entry>
<title>Merge branches 'release', 'bugzilla-13032', 'bugzilla-13041+', 'bugzilla-13121', 'bugzilla-13165', 'bugzilla-13243', 'bugzilla-13259', 'resume-sci-en-regression', 'thermal-regression', 'tsc-regression' and 'asus-2.6.30' into release</title>
<updated>2009-05-16T05:55:59Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2009-05-16T05:55:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4e3507f7189111b0cb66c30def3423c6aba8f85a'/>
<id>urn:sha1:4e3507f7189111b0cb66c30def3423c6aba8f85a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ACPI: Idle C-states disabled by max_cstate should not disable the TSC</title>
<updated>2009-05-16T05:52:39Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2009-05-15T05:29:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0bf284bfedd6dc95bbee7ebf5ccf3b5f753a008'/>
<id>urn:sha1:a0bf284bfedd6dc95bbee7ebf5ccf3b5f753a008</id>
<content type='text'>
Processor idle power states C2 and C3 stop the TSC on many machines.
Linux recognizes this situation and marks the TSC as unstable:

Marking TSC unstable due to TSC halts in idle

But if those same machines are booted with "processor.max_cstate=1",
then there is no need to validate C2 and C3, and no need to
disable the TSC, which can be reliably used as a clocksource.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>ACPI: idle: fix init-time TSC check regression</title>
<updated>2009-05-16T05:51:51Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2009-05-14T21:27:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=520daf7217bc1806c02eb4cfa7805447a3da2f66'/>
<id>urn:sha1:520daf7217bc1806c02eb4cfa7805447a3da2f66</id>
<content type='text'>
A previous 2.6.30 patch, a71e4917dc0ebbcb5a0ecb7ca3486643c1c9a6e2,
(ACPI: idle: mark_tsc_unstable() at init-time, not run-time)
erroneously disabled the TSC on systems that did not actually
have valid deep C-states.

Move the check after the deep-C-states are validated,
via new helper, tsc_check_state(), hich replaces tsc_halts_in_c().

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Acked-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Tested-by: Frans Pop &lt;elendil@planet.nl&gt;
</content>
</entry>
</feed>
