Skip to content

Commit d403a64

Browse files
committed
Merge phase #1 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
This merges phase 1 of the x86 tree, which is a collection of branches: x86/alternatives, x86/cleanups, x86/commandline, x86/crashdump, x86/debug, x86/defconfig, x86/doc, x86/exports, x86/fpu, x86/gart, x86/idle, x86/mm, x86/mtrr, x86/nmi-watchdog, x86/oprofile, x86/paravirt, x86/reboot, x86/sparse-fixes, x86/tsc, x86/urgent and x86/vmalloc and as Ingo says: "these are the easiest, purely independent x86 topics with no conflicts, in one nice Octopus merge". * 'x86-v28-for-linus-phase1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (147 commits) x86: mtrr_cleanup: treat WRPROT as UNCACHEABLE x86: mtrr_cleanup: first 1M may be covered in var mtrrs x86: mtrr_cleanup: print out correct type v2 x86: trivial printk fix in efi.c x86, debug: mtrr_cleanup print out var mtrr before change it x86: mtrr_cleanup try gran_size to less than 1M, v3 x86: mtrr_cleanup try gran_size to less than 1M, cleanup x86: change MTRR_SANITIZER to def_bool y x86, debug printouts: IOMMU setup failures should not be KERN_ERR x86: export set_memory_ro and set_memory_rw x86: mtrr_cleanup try gran_size to less than 1M x86: mtrr_cleanup prepare to make gran_size to less 1M x86: mtrr_cleanup safe to get more spare regs now x86_64: be less annoying on boot, v2 x86: mtrr_cleanup hole size should be less than half of chunk_size, v2 x86: add mtrr_cleanup_debug command line x86: mtrr_cleanup optimization, v2 x86: don't need to go to chunksize to 4G x86_64: be less annoying on boot x86, olpc: fix endian bug in openfirmware workaround ...
2 parents ed458df + e496e3d commit d403a64

File tree

374 files changed

+3870
-2221
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

374 files changed

+3870
-2221
lines changed

Documentation/00-INDEX

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,6 @@ mono.txt
251251
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
252252
moxa-smartio
253253
- file with info on installing/using Moxa multiport serial driver.
254-
mtrr.txt
255-
- how to use PPro Memory Type Range Registers to increase performance.
256254
mutex-design.txt
257255
- info on the generic mutex subsystem.
258256
namespaces/

Documentation/kernel-parameters.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -463,12 +463,6 @@ and is between 256 and 4096 characters. It is defined in the file
463463
Range: 0 - 8192
464464
Default: 64
465465

466-
disable_8254_timer
467-
enable_8254_timer
468-
[IA32/X86_64] Disable/Enable interrupt 0 timer routing
469-
over the 8254 in addition to over the IO-APIC. The
470-
kernel tries to set a sensible default.
471-
472466
hpet= [X86-32,HPET] option to control HPET usage
473467
Format: { enable (default) | disable | force }
474468
disable: disable HPET and use PIT instead
@@ -1882,6 +1876,12 @@ and is between 256 and 4096 characters. It is defined in the file
18821876
shapers= [NET]
18831877
Maximal number of shapers.
18841878

1879+
show_msr= [x86] show boot-time MSR settings
1880+
Format: { <integer> }
1881+
Show boot-time (BIOS-initialized) MSR settings.
1882+
The parameter means the number of CPUs to show,
1883+
for example 1 means boot CPU only.
1884+
18851885
sim710= [SCSI,HW]
18861886
See header of drivers/scsi/sim710.c.
18871887

Documentation/x86/00-INDEX

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
00-INDEX
2+
- this file
3+
mtrr.txt
4+
- how to use x86 Memory Type Range Registers to increase performance

Documentation/x86/i386/boot.txt renamed to Documentation/x86/boot.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ Protocol: 2.00+
308308

309309
Field name: start_sys
310310
Type: read
311-
Offset/size: 0x20c/4
311+
Offset/size: 0x20c/2
312312
Protocol: 2.00+
313313

314314
The load low segment (0x1000). Obsolete.

Documentation/mtrr.txt renamed to Documentation/x86/mtrr.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Richard Gooch
1818
The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1919
MTRRs. These are supported. The AMD Athlon family provide 8 Intel
2020
style MTRRs.
21-
21+
2222
The Centaur C6 (WinChip) has 8 MCRs, allowing write-combining. These
2323
are supported.
2424

@@ -87,7 +87,7 @@ reg00: base=0x00000000 ( 0MB), size= 64MB: write-back, count=1
8787
reg01: base=0xfb000000 (4016MB), size= 16MB: write-combining, count=1
8888
reg02: base=0xfb000000 (4016MB), size= 4kB: uncachable, count=1
8989

90-
Some cards (especially Voodoo Graphics boards) need this 4 kB area
90+
Some cards (especially Voodoo Graphics boards) need this 4 kB area
9191
excluded from the beginning of the region because it is used for
9292
registers.
9393

Documentation/x86/pat.txt

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ PAT allows for different types of memory attributes. The most commonly used
1414
ones that will be supported at this time are Write-back, Uncached,
1515
Write-combined and Uncached Minus.
1616

17+
18+
PAT APIs
19+
--------
20+
1721
There are many different APIs in the kernel that allows setting of memory
1822
attributes at the page level. In order to avoid aliasing, these interfaces
1923
should be used thoughtfully. Below is a table of interfaces available,
@@ -26,38 +30,38 @@ address range to avoid any aliasing.
2630
API | RAM | ACPI,... | Reserved/Holes |
2731
-----------------------|----------|------------|------------------|
2832
| | | |
29-
ioremap | -- | UC | UC |
33+
ioremap | -- | UC- | UC- |
3034
| | | |
3135
ioremap_cache | -- | WB | WB |
3236
| | | |
33-
ioremap_nocache | -- | UC | UC |
37+
ioremap_nocache | -- | UC- | UC- |
3438
| | | |
3539
ioremap_wc | -- | -- | WC |
3640
| | | |
37-
set_memory_uc | UC | -- | -- |
41+
set_memory_uc | UC- | -- | -- |
3842
set_memory_wb | | | |
3943
| | | |
4044
set_memory_wc | WC | -- | -- |
4145
set_memory_wb | | | |
4246
| | | |
43-
pci sysfs resource | -- | -- | UC |
47+
pci sysfs resource | -- | -- | UC- |
4448
| | | |
4549
pci sysfs resource_wc | -- | -- | WC |
4650
is IORESOURCE_PREFETCH| | | |
4751
| | | |
48-
pci proc | -- | -- | UC |
52+
pci proc | -- | -- | UC- |
4953
!PCIIOC_WRITE_COMBINE | | | |
5054
| | | |
5155
pci proc | -- | -- | WC |
5256
PCIIOC_WRITE_COMBINE | | | |
5357
| | | |
54-
/dev/mem | -- | UC | UC |
58+
/dev/mem | -- | WB/WC/UC- | WB/WC/UC- |
5559
read-write | | | |
5660
| | | |
57-
/dev/mem | -- | UC | UC |
61+
/dev/mem | -- | UC- | UC- |
5862
mmap SYNC flag | | | |
5963
| | | |
60-
/dev/mem | -- | WB/WC/UC | WB/WC/UC |
64+
/dev/mem | -- | WB/WC/UC- | WB/WC/UC- |
6165
mmap !SYNC flag | |(from exist-| (from exist- |
6266
and | | ing alias)| ing alias) |
6367
any alias to this area| | | |
@@ -68,7 +72,7 @@ pci proc | -- | -- | WC |
6872
and | | | |
6973
MTRR says WB | | | |
7074
| | | |
71-
/dev/mem | -- | -- | UC_MINUS |
75+
/dev/mem | -- | -- | UC- |
7276
mmap !SYNC flag | | | |
7377
no alias to this area | | | |
7478
and | | | |
@@ -98,3 +102,35 @@ types.
98102

99103
Drivers should use set_memory_[uc|wc] to set access type for RAM ranges.
100104

105+
106+
PAT debugging
107+
-------------
108+
109+
With CONFIG_DEBUG_FS enabled, PAT memtype list can be examined by
110+
111+
# mount -t debugfs debugfs /sys/kernel/debug
112+
# cat /sys/kernel/debug/x86/pat_memtype_list
113+
PAT memtype list:
114+
uncached-minus @ 0x7fadf000-0x7fae0000
115+
uncached-minus @ 0x7fb19000-0x7fb1a000
116+
uncached-minus @ 0x7fb1a000-0x7fb1b000
117+
uncached-minus @ 0x7fb1b000-0x7fb1c000
118+
uncached-minus @ 0x7fb1c000-0x7fb1d000
119+
uncached-minus @ 0x7fb1d000-0x7fb1e000
120+
uncached-minus @ 0x7fb1e000-0x7fb25000
121+
uncached-minus @ 0x7fb25000-0x7fb26000
122+
uncached-minus @ 0x7fb26000-0x7fb27000
123+
uncached-minus @ 0x7fb27000-0x7fb28000
124+
uncached-minus @ 0x7fb28000-0x7fb2e000
125+
uncached-minus @ 0x7fb2e000-0x7fb2f000
126+
uncached-minus @ 0x7fb2f000-0x7fb30000
127+
uncached-minus @ 0x7fb31000-0x7fb32000
128+
uncached-minus @ 0x80000000-0x90000000
129+
130+
This list shows physical address ranges and various PAT settings used to
131+
access those physical address ranges.
132+
133+
Another, more verbose way of getting PAT related debug messages is with
134+
"debugpat" boot parameter. With this parameter, various debug messages are
135+
printed to dmesg log.
136+

Documentation/x86/x86_64/boot-options.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@ APICs
5454
apicmaintimer. Useful when your PIT timer is totally
5555
broken.
5656

57-
disable_8254_timer / enable_8254_timer
58-
Enable interrupt 0 timer routing over the 8254 in addition to over
59-
the IO-APIC. The kernel tries to set a sensible default.
60-
6157
Early Console
6258

6359
syntax: earlyprintk=vga

arch/x86/Kconfig

Lines changed: 60 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ config X86
2929
select HAVE_FTRACE
3030
select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
3131
select HAVE_ARCH_KGDB if !X86_VOYAGER
32+
select HAVE_ARCH_TRACEHOOK
3233
select HAVE_GENERIC_DMA_COHERENT if X86_32
3334
select HAVE_EFFICIENT_UNALIGNED_ACCESS
3435

@@ -1020,7 +1021,7 @@ config HAVE_ARCH_ALLOC_REMAP
10201021

10211022
config ARCH_FLATMEM_ENABLE
10221023
def_bool y
1023-
depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA
1024+
depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA
10241025

10251026
config ARCH_DISCONTIGMEM_ENABLE
10261027
def_bool y
@@ -1036,7 +1037,7 @@ config ARCH_SPARSEMEM_DEFAULT
10361037

10371038
config ARCH_SPARSEMEM_ENABLE
10381039
def_bool y
1039-
depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC)
1040+
depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) || X86_GENERICARCH
10401041
select SPARSEMEM_STATIC if X86_32
10411042
select SPARSEMEM_VMEMMAP_ENABLE if X86_64
10421043

@@ -1117,10 +1118,10 @@ config MTRR
11171118
You can safely say Y even if your machine doesn't have MTRRs, you'll
11181119
just add about 9 KB to your kernel.
11191120

1120-
See <file:Documentation/mtrr.txt> for more information.
1121+
See <file:Documentation/x86/mtrr.txt> for more information.
11211122

11221123
config MTRR_SANITIZER
1123-
bool
1124+
def_bool y
11241125
prompt "MTRR cleanup support"
11251126
depends on MTRR
11261127
help
@@ -1131,7 +1132,7 @@ config MTRR_SANITIZER
11311132
The largest mtrr entry size for a continous block can be set with
11321133
mtrr_chunk_size.
11331134

1134-
If unsure, say N.
1135+
If unsure, say Y.
11351136

11361137
config MTRR_SANITIZER_ENABLE_DEFAULT
11371138
int "MTRR cleanup enable value (0-1)"
@@ -1191,15 +1192,14 @@ config IRQBALANCE
11911192
config SECCOMP
11921193
def_bool y
11931194
prompt "Enable seccomp to safely compute untrusted bytecode"
1194-
depends on PROC_FS
11951195
help
11961196
This kernel feature is useful for number crunching applications
11971197
that may need to compute untrusted bytecode during their
11981198
execution. By using pipes or other transports made available to
11991199
the process as file descriptors supporting the read/write
12001200
syscalls, it's possible to isolate those applications in
12011201
their own address space using seccomp. Once seccomp is
1202-
enabled via /proc/<pid>/seccomp, it cannot be disabled
1202+
enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
12031203
and the task is only allowed to execute a few safe syscalls
12041204
defined by each seccomp mode.
12051205

@@ -1356,14 +1356,14 @@ config PHYSICAL_ALIGN
13561356
Don't change this unless you know what you are doing.
13571357

13581358
config HOTPLUG_CPU
1359-
bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
1360-
depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
1359+
bool "Support for hot-pluggable CPUs"
1360+
depends on SMP && HOTPLUG && !X86_VOYAGER
13611361
---help---
1362-
Say Y here to experiment with turning CPUs off and on, and to
1363-
enable suspend on SMP systems. CPUs can be controlled through
1364-
/sys/devices/system/cpu.
1365-
Say N if you want to disable CPU hotplug and don't need to
1366-
suspend.
1362+
Say Y here to allow turning CPUs off and on. CPUs can be
1363+
controlled through /sys/devices/system/cpu.
1364+
( Note: power management support will enable this option
1365+
automatically on SMP systems. )
1366+
Say N if you want to disable CPU hotplug.
13671367

13681368
config COMPAT_VDSO
13691369
def_bool y
@@ -1378,6 +1378,51 @@ config COMPAT_VDSO
13781378

13791379
If unsure, say Y.
13801380

1381+
config CMDLINE_BOOL
1382+
bool "Built-in kernel command line"
1383+
default n
1384+
help
1385+
Allow for specifying boot arguments to the kernel at
1386+
build time. On some systems (e.g. embedded ones), it is
1387+
necessary or convenient to provide some or all of the
1388+
kernel boot arguments with the kernel itself (that is,
1389+
to not rely on the boot loader to provide them.)
1390+
1391+
To compile command line arguments into the kernel,
1392+
set this option to 'Y', then fill in the
1393+
the boot arguments in CONFIG_CMDLINE.
1394+
1395+
Systems with fully functional boot loaders (i.e. non-embedded)
1396+
should leave this option set to 'N'.
1397+
1398+
config CMDLINE
1399+
string "Built-in kernel command string"
1400+
depends on CMDLINE_BOOL
1401+
default ""
1402+
help
1403+
Enter arguments here that should be compiled into the kernel
1404+
image and used at boot time. If the boot loader provides a
1405+
command line at boot time, it is appended to this string to
1406+
form the full kernel command line, when the system boots.
1407+
1408+
However, you can use the CONFIG_CMDLINE_OVERRIDE option to
1409+
change this behavior.
1410+
1411+
In most cases, the command line (whether built-in or provided
1412+
by the boot loader) should specify the device for the root
1413+
file system.
1414+
1415+
config CMDLINE_OVERRIDE
1416+
bool "Built-in command line overrides boot loader arguments"
1417+
default n
1418+
depends on CMDLINE_BOOL
1419+
help
1420+
Set this option to 'Y' to have the kernel ignore the boot loader
1421+
command line, and use ONLY the built-in command line.
1422+
1423+
This is used to work around broken boot loaders. This should
1424+
be set to 'N' under normal conditions.
1425+
13811426
endmenu
13821427

13831428
config ARCH_ENABLE_MEMORY_HOTPLUG
@@ -1773,7 +1818,7 @@ config COMPAT_FOR_U64_ALIGNMENT
17731818

17741819
config SYSVIPC_COMPAT
17751820
def_bool y
1776-
depends on X86_64 && COMPAT && SYSVIPC
1821+
depends on COMPAT && SYSVIPC
17771822

17781823
endmenu
17791824

arch/x86/Kconfig.cpu

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,3 +418,21 @@ config X86_MINIMUM_CPU_FAMILY
418418
config X86_DEBUGCTLMSR
419419
def_bool y
420420
depends on !(MK6 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386)
421+
422+
config X86_DS
423+
bool "Debug Store support"
424+
default y
425+
help
426+
Add support for Debug Store.
427+
This allows the kernel to provide a memory buffer to the hardware
428+
to store various profiling and tracing events.
429+
430+
config X86_PTRACE_BTS
431+
bool "ptrace interface to Branch Trace Store"
432+
default y
433+
depends on (X86_DS && X86_DEBUGCTLMSR)
434+
help
435+
Add a ptrace interface to allow collecting an execution trace
436+
of the traced task.
437+
This collects control flow changes in a (cyclic) buffer and allows
438+
debuggers to fill in the gaps and show an execution trace of the debuggee.

arch/x86/boot/compressed/head_32.S

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,15 @@ relocated:
137137
*/
138138
movl output_len(%ebx), %eax
139139
pushl %eax
140+
# push arguments for decompress_kernel:
140141
pushl %ebp # output address
141142
movl input_len(%ebx), %eax
142143
pushl %eax # input_len
143144
leal input_data(%ebx), %eax
144145
pushl %eax # input_data
145146
leal boot_heap(%ebx), %eax
146-
pushl %eax # heap area as third argument
147-
pushl %esi # real mode pointer as second arg
147+
pushl %eax # heap area
148+
pushl %esi # real mode pointer
148149
call decompress_kernel
149150
addl $20, %esp
150151
popl %ecx

0 commit comments

Comments
 (0)