<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/arch/x86/kernel/cpu/intel_cacheinfo.c, branch v2.6.37</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>replace nested max/min macros with {max,min}3 macro</title>
<updated>2010-10-26T23:52:12+00:00</updated>
<author>
<name>Hagen Paul Pfeifer</name>
<email>hagen@jauu.net</email>
</author>
<published>2010-10-26T21:22:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=732eacc0542d0aa48797f675888b85d6065af837'/>
<id>732eacc0542d0aa48797f675888b85d6065af837</id>
<content type='text'>
Use the new {max,min}3 macros to save some cycles and bytes on the stack.
This patch substitutes trivial nested macros with their counterpart.

Signed-off-by: Hagen Paul Pfeifer &lt;hagen@jauu.net&gt;
Cc: Joe Perches &lt;joe@perches.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Cc: Roland Dreier &lt;rolandd@cisco.com&gt;
Cc: Sean Hefty &lt;sean.hefty@intel.com&gt;
Cc: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the new {max,min}3 macros to save some cycles and bytes on the stack.
This patch substitutes trivial nested macros with their counterpart.

Signed-off-by: Hagen Paul Pfeifer &lt;hagen@jauu.net&gt;
Cc: Joe Perches &lt;joe@perches.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Cc: Roland Dreier &lt;rolandd@cisco.com&gt;
Cc: Sean Hefty &lt;sean.hefty@intel.com&gt;
Cc: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, k8: Rename k8.[ch] to amd_nb.[ch] and CONFIG_K8_NB to CONFIG_AMD_NB</title>
<updated>2010-09-20T21:22:58+00:00</updated>
<author>
<name>Andreas Herrmann</name>
<email>andreas.herrmann3@amd.com</email>
</author>
<published>2010-09-17T16:03:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=23ac4ae827e6264e21b898f2cd3f601450aa02a6'/>
<id>23ac4ae827e6264e21b898f2cd3f601450aa02a6</id>
<content type='text'>
The file names are somehow misleading as the code is not specific to
AMD K8 CPUs anymore. The files accomodate code for other AMD CPU
northbridges as well.

Same is true for the config option which is valid for AMD CPU
northbridges in general and not specific to K8.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20100917160343.GD4958@loge.amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The file names are somehow misleading as the code is not specific to
AMD K8 CPUs anymore. The files accomodate code for other AMD CPU
northbridges as well.

Same is true for the config option which is valid for AMD CPU
northbridges in general and not specific to K8.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20100917160343.GD4958@loge.amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, k8-gart: Decouple handling of garts and northbridges</title>
<updated>2010-09-17T20:26:21+00:00</updated>
<author>
<name>Andreas Herrmann</name>
<email>andreas.herrmann3@amd.com</email>
</author>
<published>2010-09-17T16:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=900f9ac9f12dc3dd6fc8e33e16df172eafcaead6'/>
<id>900f9ac9f12dc3dd6fc8e33e16df172eafcaead6</id>
<content type='text'>
So far we only provide num_k8_northbridges. This is required in
different areas (e.g. L3 cache index disable, GART). But not all AMD
CPUs provide a GART. Thus it is useful to split off the GART handling
from the generic caching of AMD northbridge misc devices.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20100917160254.GC4958@loge.amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So far we only provide num_k8_northbridges. This is required in
different areas (e.g. L3 cache index disable, GART). But not all AMD
CPUs provide a GART. Thus it is useful to split off the GART handling
from the generic caching of AMD northbridge misc devices.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20100917160254.GC4958@loge.amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Fix dependency of AMD L3 CID</title>
<updated>2010-09-17T20:25:56+00:00</updated>
<author>
<name>Andreas Herrmann</name>
<email>andreas.herrmann3@amd.com</email>
</author>
<published>2010-09-17T16:07:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3518dd14ca888085797ca8d3a9e11c8ef9e7ae68'/>
<id>3518dd14ca888085797ca8d3a9e11c8ef9e7ae68</id>
<content type='text'>
L3 cache index disable code uses PCI accesses to AMD northbridge functions.
Currently the code is #ifdef CONFIG_CPU_SUP_AMD.
But it should be #if (defined(CONFIG_CPU_SUP_AMD) &amp;&amp; defined(CONFIG_PCI))
which in the end is a dependency to K8_NB.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20100917160744.GF4958@loge.amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
L3 cache index disable code uses PCI accesses to AMD northbridge functions.
Currently the code is #ifdef CONFIG_CPU_SUP_AMD.
But it should be #if (defined(CONFIG_CPU_SUP_AMD) &amp;&amp; defined(CONFIG_PCI))
which in the end is a dependency to K8_NB.

Signed-off-by: Andreas Herrmann &lt;andreas.herrmann3@amd.com&gt;
LKML-Reference: &lt;20100917160744.GF4958@loge.amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Carve out L3 cache slot accessors</title>
<updated>2010-06-09T22:57:41+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@amd64.org</email>
</author>
<published>2010-06-02T16:18:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8cc1176e5de534d55cb26ff0cef3fd0d6ad8c3c0'/>
<id>8cc1176e5de534d55cb26ff0cef3fd0d6ad8c3c0</id>
<content type='text'>
This is in preparation for disabling L3 cache indices after having
received correctable ECCs in the L3 cache. Now we allow for initial
setting of a disabled index slot (write once) and deny writing new
indices to it after it has been disabled. Also, we deny using both slots
to disable one and the same index.

Userspace can restore the previously disabled indices by rewriting those
sysfs entries when booting.

Cleanup and reorganize code while at it.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;20100602161840.GI18327@aftab&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is in preparation for disabling L3 cache indices after having
received correctable ECCs in the L3 cache. Now we allow for initial
setting of a disabled index slot (write once) and deny writing new
indices to it after it has been disabled. Also, we deny using both slots
to disable one and the same index.

Userspace can restore the previously disabled indices by rewriting those
sysfs entries when booting.

Cleanup and reorganize code while at it.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;20100602161840.GI18327@aftab&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Disable index in all four subcaches</title>
<updated>2010-04-23T00:17:27+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>borislav.petkov@amd.com</email>
</author>
<published>2010-04-22T14:07:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=59d3b388741cf1a5eb7ad27fd4e9ed72643164ae'/>
<id>59d3b388741cf1a5eb7ad27fd4e9ed72643164ae</id>
<content type='text'>
When disabling an L3 cache index, make sure we disable that index in
all four subcaches of the L3. Clarify nomenclature while at it, wrt to
disable slots versus disable index and rename accordingly.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-6-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When disabling an L3 cache index, make sure we disable that index in
all four subcaches of the L3. Clarify nomenclature while at it, wrt to
disable slots versus disable index and rename accordingly.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-6-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Make L3 cache info per node</title>
<updated>2010-04-23T00:17:23+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>borislav.petkov@amd.com</email>
</author>
<published>2010-04-22T14:07:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ba06edb63f5ef2913aad37070eaec3c9d8ac73b8'/>
<id>ba06edb63f5ef2913aad37070eaec3c9d8ac73b8</id>
<content type='text'>
Currently, we're allocating L3 cache info and calculating indices for
each online cpu which is clearly superfluous. Instead, we need to do
this per-node as is each L3 cache.

No functional change, only per-cpu memory savings.

-v2: Allocate L3 cache descriptors array dynamically.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-5-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, we're allocating L3 cache info and calculating indices for
each online cpu which is clearly superfluous. Instead, we need to do
this per-node as is each L3 cache.

No functional change, only per-cpu memory savings.

-v2: Allocate L3 cache descriptors array dynamically.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-5-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Reorganize AMD L3 cache structure</title>
<updated>2010-04-23T00:17:23+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>borislav.petkov@amd.com</email>
</author>
<published>2010-04-22T14:07:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9350f982e4fe539e83a2d4a13e9b53ad8253c4a8'/>
<id>9350f982e4fe539e83a2d4a13e9b53ad8253c4a8</id>
<content type='text'>
Add a struct representing L3 cache attributes (subcache sizes and
indices count) and move the respective members out of _cpuid4_info.
Also, stash the struct pci_dev ptr into the struct simplifying the code
even more.

There should be no functionality change resulting from this patch except
slightly slimming the _cpuid4_info per-cpu vars.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-4-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a struct representing L3 cache attributes (subcache sizes and
indices count) and move the respective members out of _cpuid4_info.
Also, stash the struct pci_dev ptr into the struct simplifying the code
even more.

There should be no functionality change resulting from this patch except
slightly slimming the _cpuid4_info per-cpu vars.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-4-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Turn off L3 cache index disable feature in virtualized environments</title>
<updated>2010-04-23T00:17:21+00:00</updated>
<author>
<name>Frank Arnold</name>
<email>frank.arnold@amd.com</email>
</author>
<published>2010-04-22T14:06:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f2b20e41407fccfcfacf927ff91ec888832a37af'/>
<id>f2b20e41407fccfcfacf927ff91ec888832a37af</id>
<content type='text'>
When running a quest kernel on xen we get:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
IP: [&lt;ffffffff8142f2fb&gt;] cpuid4_cache_lookup_regs+0x2ca/0x3df
PGD 0
Oops: 0000 [#1] SMP
last sysfs file:
CPU 0
Modules linked in:

Pid: 0, comm: swapper Tainted: G        W  2.6.34-rc3 #1 /HVM domU
RIP: 0010:[&lt;ffffffff8142f2fb&gt;]  [&lt;ffffffff8142f2fb&gt;] cpuid4_cache_lookup_regs+0x
2ca/0x3df
RSP: 0018:ffff880002203e08  EFLAGS: 00010046
RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000000060
RDX: 0000000000000000 RSI: 0000000000000040 RDI: 0000000000000000
RBP: ffff880002203ed8 R08: 00000000000017c0 R09: ffff880002203e38
R10: ffff8800023d5d40 R11: ffffffff81a01e28 R12: ffff880187e6f5c0
R13: ffff880002203e34 R14: ffff880002203e58 R15: ffff880002203e68
FS:  0000000000000000(0000) GS:ffff880002200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000038 CR3: 0000000001a3c000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a44020)
Stack:
 ffffffff810d7ecb ffff880002203e20 ffffffff81059140 ffff880002203e30
&lt;0&gt; ffffffff810d7ec9 0000000002203e40 000000000050d140 ffff880002203e70
&lt;0&gt; 0000000002008140 0000000000000086 ffff880040020140 ffffffff81068b8b
Call Trace:
 &lt;IRQ&gt;
 [&lt;ffffffff810d7ecb&gt;] ? sync_supers_timer_fn+0x0/0x1c
 [&lt;ffffffff81059140&gt;] ? mod_timer+0x23/0x25
 [&lt;ffffffff810d7ec9&gt;] ? arm_supers_timer+0x34/0x36
 [&lt;ffffffff81068b8b&gt;] ? hrtimer_get_next_event+0xa7/0xc3
 [&lt;ffffffff81058e85&gt;] ? get_next_timer_interrupt+0x19a/0x20d
 [&lt;ffffffff8142fa23&gt;] get_cpu_leaves+0x5c/0x232
 [&lt;ffffffff8106a7b1&gt;] ? sched_clock_local+0x1c/0x82
 [&lt;ffffffff8106a9a0&gt;] ? sched_clock_tick+0x75/0x7a
 [&lt;ffffffff8107748c&gt;] generic_smp_call_function_single_interrupt+0xae/0xd0
 [&lt;ffffffff8101f6ef&gt;] smp_call_function_single_interrupt+0x18/0x27
 [&lt;ffffffff8100a773&gt;] call_function_single_interrupt+0x13/0x20
 &lt;EOI&gt;
 [&lt;ffffffff8143c468&gt;] ? notifier_call_chain+0x14/0x63
 [&lt;ffffffff810295c6&gt;] ? native_safe_halt+0xc/0xd
 [&lt;ffffffff810114eb&gt;] ? default_idle+0x36/0x53
 [&lt;ffffffff81008c22&gt;] cpu_idle+0xaa/0xe4
 [&lt;ffffffff81423a9a&gt;] rest_init+0x7e/0x80
 [&lt;ffffffff81b10dd2&gt;] start_kernel+0x40e/0x419
 [&lt;ffffffff81b102c8&gt;] x86_64_start_reservations+0xb3/0xb7
 [&lt;ffffffff81b103c4&gt;] x86_64_start_kernel+0xf8/0x107
Code: 14 d5 40 ff ae 81 8b 14 02 31 c0 3b 15 47 1c 8b 00 7d 0e 48 8b 05 36 1c 8b
 00 48 63 d2 48 8b 04 d0 c7 85 5c ff ff ff 00 00 00 00 &lt;8b&gt; 70 38 48 8d 8d 5c ff
 ff ff 48 8b 78 10 ba c4 01 00 00 e8 eb
RIP  [&lt;ffffffff8142f2fb&gt;] cpuid4_cache_lookup_regs+0x2ca/0x3df
 RSP &lt;ffff880002203e08&gt;
CR2: 0000000000000038
---[ end trace a7919e7f17c0a726 ]---

The L3 cache index disable feature of AMD CPUs has to be disabled if the
kernel is running as guest on top of a hypervisor because northbridge
devices are not available to the guest. Currently, this fixes a boot
crash on top of Xen. In the future this will become an issue on KVM as
well.

Check if northbridge devices are present and do not enable the feature
if there are none.

Signed-off-by: Frank Arnold &lt;frank.arnold@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-3-git-send-email-bp@amd64.org&gt;
Acked-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running a quest kernel on xen we get:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
IP: [&lt;ffffffff8142f2fb&gt;] cpuid4_cache_lookup_regs+0x2ca/0x3df
PGD 0
Oops: 0000 [#1] SMP
last sysfs file:
CPU 0
Modules linked in:

Pid: 0, comm: swapper Tainted: G        W  2.6.34-rc3 #1 /HVM domU
RIP: 0010:[&lt;ffffffff8142f2fb&gt;]  [&lt;ffffffff8142f2fb&gt;] cpuid4_cache_lookup_regs+0x
2ca/0x3df
RSP: 0018:ffff880002203e08  EFLAGS: 00010046
RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000000060
RDX: 0000000000000000 RSI: 0000000000000040 RDI: 0000000000000000
RBP: ffff880002203ed8 R08: 00000000000017c0 R09: ffff880002203e38
R10: ffff8800023d5d40 R11: ffffffff81a01e28 R12: ffff880187e6f5c0
R13: ffff880002203e34 R14: ffff880002203e58 R15: ffff880002203e68
FS:  0000000000000000(0000) GS:ffff880002200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000038 CR3: 0000000001a3c000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a44020)
Stack:
 ffffffff810d7ecb ffff880002203e20 ffffffff81059140 ffff880002203e30
&lt;0&gt; ffffffff810d7ec9 0000000002203e40 000000000050d140 ffff880002203e70
&lt;0&gt; 0000000002008140 0000000000000086 ffff880040020140 ffffffff81068b8b
Call Trace:
 &lt;IRQ&gt;
 [&lt;ffffffff810d7ecb&gt;] ? sync_supers_timer_fn+0x0/0x1c
 [&lt;ffffffff81059140&gt;] ? mod_timer+0x23/0x25
 [&lt;ffffffff810d7ec9&gt;] ? arm_supers_timer+0x34/0x36
 [&lt;ffffffff81068b8b&gt;] ? hrtimer_get_next_event+0xa7/0xc3
 [&lt;ffffffff81058e85&gt;] ? get_next_timer_interrupt+0x19a/0x20d
 [&lt;ffffffff8142fa23&gt;] get_cpu_leaves+0x5c/0x232
 [&lt;ffffffff8106a7b1&gt;] ? sched_clock_local+0x1c/0x82
 [&lt;ffffffff8106a9a0&gt;] ? sched_clock_tick+0x75/0x7a
 [&lt;ffffffff8107748c&gt;] generic_smp_call_function_single_interrupt+0xae/0xd0
 [&lt;ffffffff8101f6ef&gt;] smp_call_function_single_interrupt+0x18/0x27
 [&lt;ffffffff8100a773&gt;] call_function_single_interrupt+0x13/0x20
 &lt;EOI&gt;
 [&lt;ffffffff8143c468&gt;] ? notifier_call_chain+0x14/0x63
 [&lt;ffffffff810295c6&gt;] ? native_safe_halt+0xc/0xd
 [&lt;ffffffff810114eb&gt;] ? default_idle+0x36/0x53
 [&lt;ffffffff81008c22&gt;] cpu_idle+0xaa/0xe4
 [&lt;ffffffff81423a9a&gt;] rest_init+0x7e/0x80
 [&lt;ffffffff81b10dd2&gt;] start_kernel+0x40e/0x419
 [&lt;ffffffff81b102c8&gt;] x86_64_start_reservations+0xb3/0xb7
 [&lt;ffffffff81b103c4&gt;] x86_64_start_kernel+0xf8/0x107
Code: 14 d5 40 ff ae 81 8b 14 02 31 c0 3b 15 47 1c 8b 00 7d 0e 48 8b 05 36 1c 8b
 00 48 63 d2 48 8b 04 d0 c7 85 5c ff ff ff 00 00 00 00 &lt;8b&gt; 70 38 48 8d 8d 5c ff
 ff ff 48 8b 78 10 ba c4 01 00 00 e8 eb
RIP  [&lt;ffffffff8142f2fb&gt;] cpuid4_cache_lookup_regs+0x2ca/0x3df
 RSP &lt;ffff880002203e08&gt;
CR2: 0000000000000038
---[ end trace a7919e7f17c0a726 ]---

The L3 cache index disable feature of AMD CPUs has to be disabled if the
kernel is running as guest on top of a hypervisor because northbridge
devices are not available to the guest. Currently, this fixes a boot
crash on top of Xen. In the future this will become an issue on KVM as
well.

Check if northbridge devices are present and do not enable the feature
if there are none.

Signed-off-by: Frank Arnold &lt;frank.arnold@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-3-git-send-email-bp@amd64.org&gt;
Acked-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, cacheinfo: Unify AMD L3 cache index disable checking</title>
<updated>2010-04-23T00:17:20+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>borislav.petkov@amd.com</email>
</author>
<published>2010-04-22T14:06:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b1ab1b4d9ab9812c77843abec79030292ef0a544'/>
<id>b1ab1b4d9ab9812c77843abec79030292ef0a544</id>
<content type='text'>
All F10h CPUs starting with model 8 resp. 9, stepping 1, support L3
cache index disable. Concentrate the family, model, stepping checking at
one place and enable the feature implicitly on upcoming Fam10h models.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-2-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All F10h CPUs starting with model 8 resp. 9, stepping 1, support L3
cache index disable. Concentrate the family, model, stepping checking at
one place and enable the feature implicitly on upcoming Fam10h models.

Signed-off-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
LKML-Reference: &lt;1271945222-5283-2-git-send-email-bp@amd64.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
