<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/kernel/cpu/amd.c, branch linux-2.6.30.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.30.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.30.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2009-09-09T03:33:52Z</updated>
<entry>
<title>x86, amd: Don't probe for extended APIC ID if APICs are disabled</title>
<updated>2009-09-09T03:33:52Z</updated>
<author>
<name>Jeremy Fitzhardinge</name>
</author>
<published>2009-07-22T16:59:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8c668814e3e2be7d633447bf6e78237d4cedabb7'/>
<id>urn:sha1:8c668814e3e2be7d633447bf6e78237d4cedabb7</id>
<content type='text'>
commit 2cb078603abb612e3bcd428fb8122c3d39e08832 upstream.

If we've logically disabled apics, don't probe the PCI space for the
AMD extended APIC ID.

[ Impact: prevent boot crash under Xen. ]

Signed-off-by: Jeremy Fitzhardinge &lt;jeremy.fitzhardinge@citrix.com&gt;
Reported-by: Bastian Blank &lt;bastian@waldi.eu.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>x86: Set cpu_llc_id on AMD CPUs</title>
<updated>2009-07-02T23:50:23Z</updated>
<author>
<name>Andreas Herrmann</name>
</author>
<published>2009-06-19T08:59:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cbf04c319c1776377dddc5e90d1e44d793b3a336'/>
<id>urn:sha1:cbf04c319c1776377dddc5e90d1e44d793b3a336</id>
<content type='text'>
commit 99bd0c0fc4b04da54cb311953ef9489931c19c63 upstream.

This counts when building sched domains in case NUMA information
is not available.

( See cpu_coregroup_mask() which uses llc_shared_map which in turn is
  created based on cpu_llc_id. )

Currently Linux builds domains as follows:
(example from a dual socket quad-core system)

 CPU0 attaching sched-domain:
  domain 0: span 0-7 level CPU
   groups: 0 1 2 3 4 5 6 7

  ...

 CPU7 attaching sched-domain:
  domain 0: span 0-7 level CPU
   groups: 7 0 1 2 3 4 5 6

Ever since that is borked for multi-core AMD CPU systems.
This patch fixes that and now we get a proper:

 CPU0 attaching sched-domain:
  domain 0: span 0-3 level MC
   groups: 0 1 2 3
   domain 1: span 0-7 level CPU
    groups: 0-3 4-7

  ...

 CPU7 attaching sched-domain:
  domain 0: span 4-7 level MC
   groups: 7 4 5 6
   domain 1: span 0-7 level CPU
    groups: 4-7 0-3

This allows scheduler to assign tasks to cores on different sockets
(i.e. that don't share last level cache) for performance reasons.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20090619085909.GJ5218@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: Detect use of extended APIC ID for AMD CPUs</title>
<updated>2009-07-02T23:49:47Z</updated>
<author>
<name>Andreas Herrmann</name>
</author>
<published>2009-06-08T13:55:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb9b409349f533a919b6b6d95698fbe6ff4aa209'/>
<id>urn:sha1:bb9b409349f533a919b6b6d95698fbe6ff4aa209</id>
<content type='text'>
commit 42937e81a82b6bbc51a309c83da140b3a7ca5945 upstream.

Booting a 32-bit kernel on Magny-Cours results in the following panic:

  ...
  Using APIC driver default
  ...
  Overriding APIC driver with bigsmp
  ...
  Getting VERSION: 80050010
  Getting VERSION: 80050010
  Getting ID: 10000000
  Getting ID: ef000000
  Getting LVT0: 700
  Getting LVT1: 10000
  Kernel panic - not syncing: Boot APIC ID in local APIC unexpected (16 vs 0)
  Pid: 1, comm: swapper Not tainted 2.6.30-rcX #2
  Call Trace:
   [&lt;c05194da&gt;] ? panic+0x38/0xd3
   [&lt;c0743102&gt;] ? native_smp_prepare_cpus+0x259/0x31f
   [&lt;c073b19d&gt;] ? kernel_init+0x3e/0x141
   [&lt;c073b15f&gt;] ? kernel_init+0x0/0x141
   [&lt;c020325f&gt;] ? kernel_thread_helper+0x7/0x10

The reason is that default_get_apic_id handled extension of local APIC
ID field just in case of XAPIC.

Thus for this AMD CPU, default_get_apic_id() returns 0 and
bigsmp_get_apic_id() returns 16 which leads to the respective kernel
panic.

This patch introduces a Linux specific feature flag to indicate
support for extended APIC id (8 bits instead of 4 bits width) and sets
the flag on AMD CPUs if applicable.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20090608135509.GA12431@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: move various CPU initialization objects into .cpuinit.rodata</title>
<updated>2009-03-12T12:13:07Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2009-03-12T12:08:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02dde8b45c5460794b9052d7c12939fe3eb63c2c'/>
<id>urn:sha1:02dde8b45c5460794b9052d7c12939fe3eb63c2c</id>
<content type='text'>
Impact: debuggability and micro-optimization

Putting whatever is possible into the (final) .rodata section increases
the likelihood of catching memory corruption bugs early, and reduces
false cache line sharing.

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
LKML-Reference: &lt;49B90961.76E4.0078.0@novell.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: remove smp_apply_quirks()/smp_checks()</title>
<updated>2009-03-08T15:22:56Z</updated>
<author>
<name>Yinghai Lu</name>
</author>
<published>2009-03-08T07:46:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f442d70c84aa798e243e721eba728a98434cd86'/>
<id>urn:sha1:1f442d70c84aa798e243e721eba728a98434cd86</id>
<content type='text'>
Impact: cleanup and code size reduction on 64-bit

This code is only applied to Intel Pentium and AMD K7 32-bit cpus.

Move those checks to intel_init()/amd_init() for 32-bit
so 64-bit will not build this code.

Also change to use cpu_index check to see if we need to emit warning.

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
LKML-Reference: &lt;49B377D2.8030108@kernel.org&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86, apic: remove duplicate asm/apic.h inclusions</title>
<updated>2009-02-17T16:52:44Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2009-02-17T13:02:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e641f5f525acb163ba71d92de79c9c7366deae03'/>
<id>urn:sha1:e641f5f525acb163ba71d92de79c9c7366deae03</id>
<content type='text'>
Impact: cleanup

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86, apic: remove genapic.h</title>
<updated>2009-02-17T16:52:44Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2009-02-17T12:58:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b6aa335ca1a845c2262ec7a595b4521bca0f79d'/>
<id>urn:sha1:7b6aa335ca1a845c2262ec7a595b4521bca0f79d</id>
<content type='text'>
Impact: cleanup

Remove genapic.h and remove all references to it.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: remove mach_apic.h</title>
<updated>2009-01-29T13:16:42Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2009-01-28T16:55:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1dcdd3d15ecea0c22a09d4d001a39d425fceff2c'/>
<id>urn:sha1:1dcdd3d15ecea0c22a09d4d001a39d425fceff2c</id>
<content type='text'>
Spread mach_apic.h definitions into genapic.h. (with some knock-on effects
on smp.h and apic.h.)

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: support always running TSC on Intel CPUs</title>
<updated>2008-12-16T20:02:50Z</updated>
<author>
<name>Venki Pallipadi</name>
</author>
<published>2008-11-18T00:11:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40fb17152c50a69dc304dd632131c2f41281ce44'/>
<id>urn:sha1:40fb17152c50a69dc304dd632131c2f41281ce44</id>
<content type='text'>
Impact: reward non-stop TSCs with good TSC-based clocksources, etc.

Add support for CPUID_0x80000007_Bit8 on Intel CPUs as well. This bit means
that the TSC is invariant with C/P/T states and always runs at constant
frequency.

With Intel CPUs, we have 3 classes
* CPUs where TSC runs at constant rate and does not stop n C-states
* CPUs where TSC runs at constant rate, but will stop in deep C-states
* CPUs where TSC rate will vary based on P/T-states and TSC will stop in deep
  C-states.

To cover these 3, one feature bit (CONSTANT_TSC) is not enough. So, add a
second bit (NONSTOP_TSC). CONSTANT_TSC indicates that the TSC runs at
constant frequency irrespective of P/T-states, and NONSTOP_TSC indicates
that TSC does not stop in deep C-states.

CPUID_0x8000000_Bit8 indicates both these feature bit can be set.
We still have CONSTANT_TSC _set_ and NONSTOP_TSC _not_set_ on some older Intel
CPUs, based on model checks. We can use TSC on such CPUs for time, as long as
those CPUs do not support/enter deep C-states.

Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: print out apic id in hex format</title>
<updated>2008-10-16T14:53:09Z</updated>
<author>
<name>Yinghai Lu</name>
</author>
<published>2008-09-11T04:56:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=823b259b80158a5fb694f6784e18b5bae669c599'/>
<id>urn:sha1:823b259b80158a5fb694f6784e18b5bae669c599</id>
<content type='text'>
Signed-off-by: Yinghai Lu &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
</feed>
