<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/include/asm, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-03-27T19:00:14Z</updated>
<entry>
<title>intel_idle: disable Atom/Lincroft HW C-state auto-demotion</title>
<updated>2011-03-27T19:00:14Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2011-02-16T06:32:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8394e17b4db56bce1bd4232d48385bf9b8b496ce'/>
<id>urn:sha1:8394e17b4db56bce1bd4232d48385bf9b8b496ce</id>
<content type='text'>
commit bfb53ccf1c734b1907df7189eef4c08489827951 upstream.

Just as we had to disable auto-demotion for NHM/WSM,
we need to do the same for Atom (Lincroft version).

In particular, auto-demotion will prevent Lincroft
from entering the S0i3 idle power saving state.

https://bugzilla.kernel.org/show_bug.cgi?id=25252

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>intel_idle: disable NHM/WSM HW C-state auto-demotion</title>
<updated>2011-03-27T19:00:13Z</updated>
<author>
<name>Len Brown</name>
</author>
<published>2011-01-19T01:48:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cca24e5f3fa80fc5043bae978aa26d8ffd1d7402'/>
<id>urn:sha1:cca24e5f3fa80fc5043bae978aa26d8ffd1d7402</id>
<content type='text'>
commit 14796fca2bd22acc73dd0887248d003b0f441d08 upstream.

Hardware C-state auto-demotion is a mechanism where the HW overrides
the OS C-state request, instead demoting to a shallower state,
which is less expensive, but saves less power.

Modern Linux should generally get exactly the states it requests.
In particular, when a CPU is taken off-line, it must not be demoted, else
it can prevent the entire package from reaching deep C-states.

https://bugzilla.kernel.org/show_bug.cgi?id=25252

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>x86: Flush TLB if PGD entry is changed in i386 PAE mode</title>
<updated>2011-03-23T19:50:40Z</updated>
<author>
<name>Shaohua Li</name>
</author>
<published>2011-03-16T03:37:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40c6b0274a9660e5051c3c150458d9bae2ac8979'/>
<id>urn:sha1:40c6b0274a9660e5051c3c150458d9bae2ac8979</id>
<content type='text'>
commit 4981d01eada5354d81c8929d5b2836829ba3df7b upstream.

According to intel CPU manual, every time PGD entry is changed in i386 PAE
mode, we need do a full TLB flush. Current code follows this and there is
comment for this too in the code.

But current code misses the multi-threaded case. A changed page table
might be used by several CPUs, every such CPU should flush TLB. Usually
this isn't a problem, because we prepopulate all PGD entries at process
fork. But when the process does munmap and follows new mmap, this issue
will be triggered.

When it happens, some CPUs keep doing page faults:

  http://marc.info/?l=linux-kernel&amp;m=129915020508238&amp;w=2

Reported-by: Yasunori Goto&lt;y-goto@jp.fujitsu.com&gt;
Tested-by: Yasunori Goto&lt;y-goto@jp.fujitsu.com&gt;
Reviewed-by: Rik van Riel &lt;riel@redhat.com&gt;
Signed-off-by: Shaohua Li&lt;shaohua.li@intel.com&gt;
Cc: Mallick Asit K &lt;asit.k.mallick@intel.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: linux-mm &lt;linux-mm@kvack.org&gt;
LKML-Reference: &lt;1300246649.2337.95.camel@sli10-conroe&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>x86: Use u32 instead of long to set reset vector back to 0</title>
<updated>2011-03-07T23:05:18Z</updated>
<author>
<name>Don Zickus</name>
</author>
<published>2011-02-08T04:25:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aee193072ec3de9a272a651cab20480d71b421f6'/>
<id>urn:sha1:aee193072ec3de9a272a651cab20480d71b421f6</id>
<content type='text'>
commit 299c56966a72b9109d47c71a6db52097098703dd upstream.

A customer of ours, complained that when setting the reset
vector back to 0, it trashed other data and hung their box.
They noticed when only 4 bytes were set to 0 instead of 8,
everything worked correctly.

Mathew pointed out:

 |
 | We're supposed to be resetting trampoline_phys_low and
 | trampoline_phys_high here, which are two 16-bit values.
 | Writing 64 bits is definitely going to overwrite space
 | that we're not supposed to be touching.
 |

So limit the area modified to u32.

Signed-off-by: Don Zickus &lt;dzickus@redhat.com&gt;
Acked-by: Matthew Garrett &lt;mjg@redhat.com&gt;
LKML-Reference: &lt;1297139100-424-1-git-send-email-dzickus@redhat.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>x86 quirk: Fix polarity for IRQ0 pin2 override on SB800 systems</title>
<updated>2011-03-07T23:05:12Z</updated>
<author>
<name>Andreas Herrmann</name>
</author>
<published>2011-02-24T14:53:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=64e8cdcc476ee10293ed205febbc9703c8ea1d0e'/>
<id>urn:sha1:64e8cdcc476ee10293ed205febbc9703c8ea1d0e</id>
<content type='text'>
commit 7f74f8f28a2bd9db9404f7d364e2097a0c42cc12 upstream.

On some SB800 systems polarity for IOAPIC pin2 is wrongly
specified as low active by BIOS. This caused system hangs after
resume from S3 when HPET was used in one-shot mode on such
systems because a timer interrupt was missed (HPET signal is
high active).

For more details see:

  http://marc.info/?l=linux-kernel&amp;m=129623757413868

Tested-by: Manoj Iyer &lt;manoj.iyer@canonical.com&gt;
Tested-by: Andre Przywara &lt;andre.przywara@amd.com&gt;
Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
Cc: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;20110224145346.GD3658@alberich.amd.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>x86, hotplug: Fix powersavings with offlined cores on AMD</title>
<updated>2011-02-24T22:54:30Z</updated>
<author>
<name>Borislav Petkov</name>
</author>
<published>2011-02-17T13:57:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ac3a3e2845648ddbfdf62dde6eb5e50eb1b4a8c'/>
<id>urn:sha1:4ac3a3e2845648ddbfdf62dde6eb5e50eb1b4a8c</id>
<content type='text'>
Upstream commits: 93789b32dbf355e70f18b17a82e8661677a7f7fb,
	 1c9d16e35911090dee3f9313e6af13af623d66ee

ea53069231f9317062910d6e772cca4ce93de8c8 made a CPU use monitor/mwait
when offline. This is not the optimal choice for AMD wrt to powersavings
and we'd prefer our cores to halt (i.e. enter C1) instead. For this, the
same selection whether to use monitor/mwait has to be used as when we
select the idle routine for the machine.

With this patch, offlining cores 1-5 on a X6 machine allows core0 to
boost again.

[ hpa: putting this in urgent since it is a (power) regression fix ]

Reported-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
Cc: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Cc: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Cc: Len Brown &lt;lenb@kernel.org&gt;
Cc: Venkatesh Pallipadi &lt;venki@google.com&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.hl&gt;
Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1295534572-10730-1-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>x86, mm: avoid possible bogus tlb entries by clearing prev mm_cpumask after switching mm</title>
<updated>2011-02-17T23:15:20Z</updated>
<author>
<name>Suresh Siddha</name>
</author>
<published>2011-02-03T20:20:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=134fee9c4369ad67df2e3f0e6ec66c4fb4fb4e85'/>
<id>urn:sha1:134fee9c4369ad67df2e3f0e6ec66c4fb4fb4e85</id>
<content type='text'>
commit 831d52bc153971b70e64eccfbed2b232394f22f8 upstream.

Clearing the cpu in prev's mm_cpumask early will avoid the flush tlb
IPI's while the cr3 is still pointing to the prev mm.  And this window
can lead to the possibility of bogus TLB fills resulting in strange
failures.  One such problematic scenario is mentioned below.

 T1. CPU-1 is context switching from mm1 to mm2 context and got a NMI
     etc between the point of clearing the cpu from the mm_cpumask(mm1)
     and before reloading the cr3 with the new mm2.

 T2. CPU-2 is tearing down a specific vma for mm1 and will proceed with
     flushing the TLB for mm1.  It doesn't send the flush TLB to CPU-1
     as it doesn't see that cpu listed in the mm_cpumask(mm1).

 T3. After the TLB flush is complete, CPU-2 goes ahead and frees the
     page-table pages associated with the removed vma mapping.

 T4. CPU-2 now allocates those freed page-table pages for something
     else.

 T5. As the CR3 and TLB caches for mm1 is still active on CPU-1, CPU-1
     can potentially speculate and walk through the page-table caches
     and can insert new TLB entries.  As the page-table pages are
     already freed and being used on CPU-2, this page walk can
     potentially insert a bogus global TLB entry depending on the
     (random) contents of the page that is being used on CPU-2.

 T6. This bogus TLB entry being global will be active across future CR3
     changes and can result in weird memory corruption etc.

To avoid this issue, for the prev mm that is handing over the cpu to
another mm, clear the cpu from the mm_cpumask(prev) after the cr3 is
changed.

Marking it for -stable, though we haven't seen any reported failure that
can be attributed to this.

Signed-off-by: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>x86, UV, BAU: Extend for more than 16 cpus per socket</title>
<updated>2011-02-17T23:13:36Z</updated>
<author>
<name>Cliff Wickman</name>
</author>
<published>2011-01-03T18:03:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41098305705caab7523405c50a8d5e942f36b2b9'/>
<id>urn:sha1:41098305705caab7523405c50a8d5e942f36b2b9</id>
<content type='text'>
commit cfa60917f0ba6eca83f41aef3cb4a7dd7736ac9f upstream.

Fix a hard-coded limit of a maximum of 16 cpu's per socket.

The UV Broadcast Assist Unit code initializes by scanning the
cpu topology of the system and assigning a master cpu for each
socket and UV hub. That scan had an assumption of a limit of 16
cpus per socket. With Westmere we are going over that limit.
The UV hub hardware will allow up to 32.

If the scan finds the system has gone over that limit it returns
an error and we print a warning and fall back to doing TLB
shootdowns without the BAU.

Signed-off-by: Cliff Wickman &lt;cpw@sgi.com&gt;
LKML-Reference: &lt;E1PZol7-0000mM-77@eag09.americas.sgi.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6</title>
<updated>2010-12-18T18:13:24Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2010-12-18T18:13:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=46bdfe6a50b88942f5323f837a3afd93a1c86e60'/>
<id>urn:sha1:46bdfe6a50b88942f5323f837a3afd93a1c86e60</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
  x86: avoid high BIOS area when allocating address space
  x86: avoid E820 regions when allocating address space
  x86: avoid low BIOS area when allocating address space
  resources: add arch hook for preventing allocation in reserved areas
  Revert "resources: support allocating space within a region from the top down"
  Revert "PCI: allocate bus resources from the top down"
  Revert "x86/PCI: allocate space from the end of a region, not the beginning"
  Revert "x86: allocate space within a region top-down"
  Revert "PCI: fix pci_bus_alloc_resource() hang, prefer positive decode"
  PCI: Update MCP55 quirk to not affect non HyperTransport variants
</content>
</entry>
<entry>
<title>x86: avoid high BIOS area when allocating address space</title>
<updated>2010-12-17T18:01:30Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2010-12-16T17:39:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2c606d53ab71dee6410f10ef0adf67321d60e06'/>
<id>urn:sha1:a2c606d53ab71dee6410f10ef0adf67321d60e06</id>
<content type='text'>
This prevents allocation of the last 2MB before 4GB.

The experiment described here shows Windows 7 ignoring the last 1MB:
https://bugzilla.kernel.org/show_bug.cgi?id=23542#c27

This patch ignores the top 2MB instead of just 1MB because H. Peter Anvin
says "There will be ROM at the top of the 32-bit address space; it's a fact
of the architecture, and on at least older systems it was common to have a
shadow 1 MiB below."

Acked-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bjorn.helgaas@hp.com&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
</entry>
</feed>
