<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/x86/include/asm, branch v3.0.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/x86/include/asm?h=v3.0.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/x86/include/asm?h=v3.0.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-08-05T04:58:35Z</updated>
<entry>
<title>x86, intel, power: Initialize MSR_IA32_ENERGY_PERF_BIAS</title>
<updated>2011-08-05T04:58:35Z</updated>
<author>
<name>Len Brown</name>
<email>len.brown@intel.com</email>
</author>
<published>2011-07-14T04:53:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6e243f86d1424d7a1d67da4f8527239a786d9c2f'/>
<id>urn:sha1:6e243f86d1424d7a1d67da4f8527239a786d9c2f</id>
<content type='text'>
commit abe48b108247e9b90b4c6739662a2e5c765ed114 upstream.

Since 2.6.36 (23016bf0d25), Linux prints the existence of "epb" in /proc/cpuinfo,
Since 2.6.38 (d5532ee7b40), the x86_energy_perf_policy(8) utility has
been available in-tree to update MSR_IA32_ENERGY_PERF_BIAS.

However, the typical BIOS fails to initialize the MSR, presumably
because this is handled by high-volume shrink-wrap operating systems...

Linux distros, on the other hand, do not yet invoke x86_energy_perf_policy(8).
As a result, WSM-EP, SNB, and later hardware from Intel will run in its
default hardware power-on state (performance), which assumes that users
care for performance at all costs and not for energy efficiency.
While that is fine for performance benchmarks, the hardware's intended default
operating point is "normal" mode...

Initialize the MSR to the "normal" by default during kernel boot.

x86_energy_perf_policy(8) is available to change the default after boot,
should the user have a different preference.

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1107140051020.18606@x980
Acked-by: Rafael J. Wysocki &lt;rjw@sisk.pl&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-32, NUMA: Fix boot regression caused by NUMA init unification on highmem machines</title>
<updated>2011-07-01T11:38:51Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-06-28T09:41:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a26474e8649643e82d71e3a386d5c4bcc0b207ef'/>
<id>urn:sha1:a26474e8649643e82d71e3a386d5c4bcc0b207ef</id>
<content type='text'>
During 32/64 NUMA init unification, commit 797390d855 ("x86-32,
NUMA: use sparse_memory_present_with_active_regions()") made
32bit mm init call memory_present() automatically from
active_regions instead of leaving it to each NUMA init path.

This commit description is inaccurate - memory_present() calls
aren't the same for flat and numaq.  After the commit,
memory_present() is only called for the intersection of e820 and
NUMA layout.  Before, on flatmem, memory_present() would be
called from 0 to max_pfn.  After, it would be called only on the
areas that e820 indicates to be populated.

This is how x86_64 works and should be okay as memmap is allowed
to contain holes; however, x86_32 DISCONTIGMEM is missing
early_pfn_valid(), which makes memmap_init_zone() assume that
memmap doesn't contain any hole.  This leads to the following
oops if e820 map contains holes as it often does on machine with
near or more 4GiB of memory by calling pfn_to_page() on a pfn
which isn't mapped to a NUMA node, a reported by Conny Seidel:

  BUG: unable to handle kernel paging request at 000012b0
  IP: [&lt;c1aa13ce&gt;] memmap_init_zone+0x6c/0xf2
  *pdpt =3D 0000000000000000 *pde =3D f000eef3f000ee00
  Oops: 0000 [#1] SMP
  last sysfs file:
  Modules linked in:

  Pid: 0, comm: swapper Not tainted 2.6.39-rc5-00164-g797390d #1 To Be Filled By O.E.M. To Be Filled By O.E.M./E350M1
  EIP: 0060:[&lt;c1aa13ce&gt;] EFLAGS: 00010012 CPU: 0
  EIP is at memmap_init_zone+0x6c/0xf2
  EAX: 00000000 EBX: 000a8000 ECX: 000a7fff EDX: f2c00b80
  ESI: 000a8000 EDI: f2c00800 EBP: c19ffe54 ESP: c19ffe34
   DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
  Process swapper (pid: 0, ti=3Dc19fe000 task=3Dc1a07f60 task.ti=3Dc19fe000)
  Stack:
   00000002 00000000 0023f000 00000000 10000000 00000a00 f2c00000 f2c00b58
   c19ffeb0 c1a80f24 000375fe 00000000 f2c00800 00000800 00000100 00000030
   c1abb768 0000003c 00000000 00000000 00000004 00207a02 f2c00800 000375fe
  Call Trace:
   [&lt;c1a80f24&gt;] free_area_init_node+0x358/0x385
   [&lt;c1a81384&gt;] free_area_init_nodes+0x420/0x487
   [&lt;c1a79326&gt;] paging_init+0x114/0x11b
   [&lt;c1a6cb13&gt;] setup_arch+0xb37/0xc0a
   [&lt;c1a69554&gt;] start_kernel+0x76/0x316
   [&lt;c1a690a8&gt;] i386_start_kernel+0xa8/0xb0

This patch fixes the bug by defining early_pfn_valid() to be the
same as pfn_valid() when DISCONTIGMEM.

Reported-bisected-and-tested-by: Conny Seidel &lt;conny.seidel@amd.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: hans.rosenfeld@amd.com
Cc: Christoph Lameter &lt;cl@linux.com&gt;
Cc: Conny Seidel &lt;conny.seidel@amd.com&gt;
Link: http://lkml.kernel.org/r/20110628094107.GB3386@htj.dyndns.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>watchdog: Intel SCU Watchdog: Fix build and remove duplicate code</title>
<updated>2011-06-28T07:42:50Z</updated>
<author>
<name>Jesper Juhl</name>
<email>jj@chaosbits.net</email>
</author>
<published>2011-05-26T09:12:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e376fd664b1547e29e264e3cfb97553a1be9054b'/>
<id>urn:sha1:e376fd664b1547e29e264e3cfb97553a1be9054b</id>
<content type='text'>
Trying to build the Intel SCU Watchdog fails for me with gcc 4.6.0 -
$ gcc --version | head -n 1
gcc (GCC) 4.6.0 20110513 (prerelease)

like this :
  CC      drivers/watchdog/intel_scu_watchdog.o
In file included from drivers/watchdog/intel_scu_watchdog.c:49:0:
/home/jj/src/linux-2.6/arch/x86/include/asm/apb_timer.h: In function ‘apbt_time_init’:
/home/jj/src/linux-2.6/arch/x86/include/asm/apb_timer.h:65:42: warning: ‘return’ with a value, in function returning void [enabled by default]
drivers/watchdog/intel_scu_watchdog.c: In function ‘intel_scu_watchdog_init’:
drivers/watchdog/intel_scu_watchdog.c:468:2: error: implicit declaration of function ‘sfi_get_mtmr’ [-Werror=implicit-function-declaration]
drivers/watchdog/intel_scu_watchdog.c:468:32: warning: assignment makes pointer from integer without a cast [enabled by default]
cc1: some warnings being treated as errors

make[1]: *** [drivers/watchdog/intel_scu_watchdog.o] Error 1
make: *** [drivers/watchdog/intel_scu_watchdog.o] Error 2

Additionally, linux/types.h is needlessly being included twice in 
drivers/watchdog/intel_scu_watchdog.c

Signed-off-by: Jesper Juhl &lt;jj@chaosbits.net&gt;
Signed-off-by: Wim Van Sebroeck &lt;wim@iguana.be&gt;

</content>
</entry>
<entry>
<title>Fix node_start/end_pfn() definition for mm/page_cgroup.c</title>
<updated>2011-06-27T21:13:09Z</updated>
<author>
<name>KAMEZAWA Hiroyuki</name>
<email>kamezawa.hiroyu@jp.fujitsu.com</email>
</author>
<published>2011-06-16T08:28:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c6830c22603aaecf65405af23f6da2d55892f9cb'/>
<id>urn:sha1:c6830c22603aaecf65405af23f6da2d55892f9cb</id>
<content type='text'>
commit 21a3c96 uses node_start/end_pfn(nid) for detection start/end
of nodes. But, it's not defined in linux/mmzone.h but defined in
/arch/???/include/mmzone.h which is included only under
CONFIG_NEED_MULTIPLE_NODES=y.

Then, we see
  mm/page_cgroup.c: In function 'page_cgroup_init':
  mm/page_cgroup.c:308: error: implicit declaration of function 'node_start_pfn'
  mm/page_cgroup.c:309: error: implicit declaration of function 'node_end_pfn'

So, fixiing page_cgroup.c is an idea...

But node_start_pfn()/node_end_pfn() is a very generic macro and
should be implemented in the same manner for all archs.
(m32r has different implementation...)

This patch removes definitions of node_start/end_pfn() in each archs
and defines a unified one in linux/mmzone.h. It's not under
CONFIG_NEED_MULTIPLE_NODES, now.

A result of macro expansion is here (mm/page_cgroup.c)

for !NUMA
 start_pfn = ((&amp;contig_page_data)-&gt;node_start_pfn);
  end_pfn = ({ pg_data_t *__pgdat = (&amp;contig_page_data); __pgdat-&gt;node_start_pfn + __pgdat-&gt;node_spanned_pages;});

for NUMA (x86-64)
  start_pfn = ((node_data[nid])-&gt;node_start_pfn);
  end_pfn = ({ pg_data_t *__pgdat = (node_data[nid]); __pgdat-&gt;node_start_pfn + __pgdat-&gt;node_spanned_pages;});

Changelog:
 - fixed to avoid using "nid" twice in node_end_pfn() macro.

Reported-and-acked-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Reported-and-tested-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: Mel Gorman &lt;mgorman@suse.de&gt;
Signed-off-by: KAMEZAWA Hiroyuki &lt;kamezawa.hiroyu@jp.fujitsu.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'kvm-updates/3.0' of git://git.kernel.org/pub/scm/virt/kvm/kvm</title>
<updated>2011-06-20T15:58:07Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-06-20T15:58:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=10e18e62309a882c513b4f516527055b6a60d668'/>
<id>urn:sha1:10e18e62309a882c513b4f516527055b6a60d668</id>
<content type='text'>
* 'kvm-updates/3.0' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: Fix register corruption in pvclock_scale_delta
  KVM: MMU: fix opposite condition in mapping_level_dirty_bitmap
  KVM: VMX: do not overwrite uptodate vcpu-&gt;arch.cr3 on KVM_SET_SREGS
  KVM: MMU: Fix build warnings in walk_addr_generic()
</content>
</entry>
<entry>
<title>KVM: Fix register corruption in pvclock_scale_delta</title>
<updated>2011-06-19T16:23:14Z</updated>
<author>
<name>Zachary Amsden</name>
<email>zamsden@redhat.com</email>
</author>
<published>2011-06-16T03:50:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=de2d1a524e94a79078d9fe22c57c0c6009237547'/>
<id>urn:sha1:de2d1a524e94a79078d9fe22c57c0c6009237547</id>
<content type='text'>
The 128-bit multiply in pvclock.h was missing an output constraint for
EDX which caused a register corruption to appear.  Thanks to Ulrich for
diagnosing the EDX corruption and Avi for providing this fix.

Signed-off-by: Zachary Amsden &lt;zamsden@redhat.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>x86, efi: Do not reserve boot services regions within reserved areas</title>
<updated>2011-06-18T20:48:49Z</updated>
<author>
<name>Maarten Lankhorst</name>
<email>m.b.lankhorst@gmail.com</email>
</author>
<published>2011-06-14T17:53:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7d68dc3f1003a38948c55c803c32d1989dd49198'/>
<id>urn:sha1:7d68dc3f1003a38948c55c803c32d1989dd49198</id>
<content type='text'>
Commit 916f676f8dc started reserving boot service code since some systems
require you to keep that code around until SetVirtualAddressMap is called.

However, in some cases those areas will overlap with reserved regions.
The proper medium-term fix is to fix the bootloader to prevent the
conflicts from occurring by moving the kernel to a better position,
but the kernel should check for this possibility, and only reserve regions
which can be reserved.

Signed-off-by: Maarten Lankhorst &lt;m.b.lankhorst@gmail.com&gt;
Link: http://lkml.kernel.org/r/4DF7A005.1050407@gmail.com
Acked-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6</title>
<updated>2011-05-29T18:18:09Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-29T18:18:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f310642123e0d32d919c60ca3fab5acd130c4ba3'/>
<id>urn:sha1:f310642123e0d32d919c60ca3fab5acd130c4ba3</id>
<content type='text'>
* 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
  x86 idle: deprecate mwait_idle() and "idle=mwait" cmdline param
  x86 idle: deprecate "no-hlt" cmdline param
  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE
  x86 idle floppy: deprecate disable_hlt()
  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it
  x86 idle: clarify AMD erratum 400 workaround
  idle governor: Avoid lock acquisition to read pm_qos before entering idle
  cpuidle: menu: fixed wrapping timers at 4.294 seconds
</content>
</entry>
<entry>
<title>x86 idle: clarify AMD erratum 400 workaround</title>
<updated>2011-05-29T07:38:57Z</updated>
<author>
<name>Len Brown</name>
<email>len.brown@intel.com</email>
</author>
<published>2011-04-01T20:59:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=02c68a02018669d1817c43c42de800975cbec467'/>
<id>urn:sha1:02c68a02018669d1817c43c42de800975cbec467</id>
<content type='text'>
The workaround for AMD erratum 400 uses the term "c1e" falsely suggesting:
1. Intel C1E is somehow involved
2. All AMD processors with C1E are involved

Use the string "amd_c1e" instead of simply "c1e" to clarify that
this workaround is specific to AMD's version of C1E.
Use the string "e400" to clarify that the workaround is specific
to AMD processors with Erratum 400.

This patch is text-substitution only, with no functional change.

cc: x86@kernel.org
Acked-by: Borislav Petkov &lt;borislav.petkov@amd.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2011-05-28T19:57:01Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-28T19:57:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a947e23a8ec04bccbfe98c5a2d64cd1f88b612d5'/>
<id>urn:sha1:a947e23a8ec04bccbfe98c5a2d64cd1f88b612d5</id>
<content type='text'>
* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, asm: Clean up desc.h a bit
  x86, amd: Do not enable ARAT feature on AMD processors below family 0x12
  x86: Move do_page_fault()'s error path under unlikely()
  x86, efi: Retain boot service code until after switching to virtual mode
  x86: Remove unnecessary check in detect_ht()
  x86: Reorder mm_context_t to remove x86_64 alignment padding and thus shrink mm_struct
  x86, UV: Clean up uv_tlb.c
  x86, UV: Add support for SGI UV2 hub chip
  x86, cpufeature: Update CPU feature RDRND to RDRAND
</content>
</entry>
</feed>
