Commit 57d30772 authored by Randy Dunlap's avatar Randy Dunlap Committed by Andi Kleen

[PATCH] x86-64: cleanup Doc/x86_64/ files

Fix typos.
Lots of whitespace changes for readability and consistency.
Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent 44264261
...@@ -226,9 +226,9 @@ IOMMU (input/output memory management unit) ...@@ -226,9 +226,9 @@ IOMMU (input/output memory management unit)
is 20. is 20.
memaper[=<order>] Allocate an own aperture over RAM with size 32MB<<order. memaper[=<order>] Allocate an own aperture over RAM with size 32MB<<order.
(default: order=1, i.e. 64MB) (default: order=1, i.e. 64MB)
merge Do scather-gather (SG) merging. Implies "force" merge Do scatter-gather (SG) merging. Implies "force"
(experimental). (experimental).
nomerge Don't do scather-gather (SG) merging. nomerge Don't do scatter-gather (SG) merging.
noaperture Ask the IOMMU not to touch the aperture for AGP. noaperture Ask the IOMMU not to touch the aperture for AGP.
forcesac Force single-address cycle (SAC) mode for masks <40bits forcesac Force single-address cycle (SAC) mode for masks <40bits
(experimental). (experimental).
...@@ -275,14 +275,14 @@ IOMMU (input/output memory management unit) ...@@ -275,14 +275,14 @@ IOMMU (input/output memory management unit)
Debugging Debugging
oops=panic Always panic on oopses. Default is to just kill the process, oops=panic Always panic on oopses. Default is to just kill the process,
but there is a small probability of deadlocking the machine. but there is a small probability of deadlocking the machine.
This will also cause panics on machine check exceptions. This will also cause panics on machine check exceptions.
Useful together with panic=30 to trigger a reboot. Useful together with panic=30 to trigger a reboot.
kstack=N Print that many words from the kernel stack in oops dumps. kstack=N Print N words from the kernel stack in oops dumps.
pagefaulttrace Dump all page faults. Only useful for extreme debugging pagefaulttrace Dump all page faults. Only useful for extreme debugging
and will create a lot of output. and will create a lot of output.
call_trace=[old|both|newfallback|new] call_trace=[old|both|newfallback|new]
...@@ -292,15 +292,8 @@ Debugging ...@@ -292,15 +292,8 @@ Debugging
newfallback: use new unwinder but fall back to old if it gets newfallback: use new unwinder but fall back to old if it gets
stuck (default) stuck (default)
call_trace=[old|both|newfallback|new] Miscellaneous
old: use old inexact backtracer
new: use new exact dwarf2 unwinder
both: print entries from both
newfallback: use new unwinder but fall back to old if it gets
stuck (default)
Misc
noreplacement Don't replace instructions with more appropriate ones noreplacement Don't replace instructions with more appropriate ones
for the CPU. This may be useful on asymmetric MP systems for the CPU. This may be useful on asymmetric MP systems
where some CPU have less capabilities than the others. where some CPUs have less capabilities than others.
...@@ -2,7 +2,7 @@ Firmware support for CPU hotplug under Linux/x86-64 ...@@ -2,7 +2,7 @@ Firmware support for CPU hotplug under Linux/x86-64
--------------------------------------------------- ---------------------------------------------------
Linux/x86-64 supports CPU hotplug now. For various reasons Linux wants to Linux/x86-64 supports CPU hotplug now. For various reasons Linux wants to
know in advance boot time the maximum number of CPUs that could be plugged know in advance of boot time the maximum number of CPUs that could be plugged
into the system. ACPI 3.0 currently has no official way to supply into the system. ACPI 3.0 currently has no official way to supply
this information from the firmware to the operating system. this information from the firmware to the operating system.
......
...@@ -9,9 +9,9 @@ zombie. While the thread is in user space the kernel stack is empty ...@@ -9,9 +9,9 @@ zombie. While the thread is in user space the kernel stack is empty
except for the thread_info structure at the bottom. except for the thread_info structure at the bottom.
In addition to the per thread stacks, there are specialized stacks In addition to the per thread stacks, there are specialized stacks
associated with each cpu. These stacks are only used while the kernel associated with each CPU. These stacks are only used while the kernel
is in control on that cpu, when a cpu returns to user space the is in control on that CPU; when a CPU returns to user space the
specialized stacks contain no useful data. The main cpu stacks is specialized stacks contain no useful data. The main CPU stacks are:
* Interrupt stack. IRQSTACKSIZE * Interrupt stack. IRQSTACKSIZE
...@@ -32,17 +32,17 @@ x86_64 also has a feature which is not available on i386, the ability ...@@ -32,17 +32,17 @@ x86_64 also has a feature which is not available on i386, the ability
to automatically switch to a new stack for designated events such as to automatically switch to a new stack for designated events such as
double fault or NMI, which makes it easier to handle these unusual double fault or NMI, which makes it easier to handle these unusual
events on x86_64. This feature is called the Interrupt Stack Table events on x86_64. This feature is called the Interrupt Stack Table
(IST). There can be up to 7 IST entries per cpu. The IST code is an (IST). There can be up to 7 IST entries per CPU. The IST code is an
index into the Task State Segment (TSS), the IST entries in the TSS index into the Task State Segment (TSS). The IST entries in the TSS
point to dedicated stacks, each stack can be a different size. point to dedicated stacks; each stack can be a different size.
An IST is selected by an non-zero value in the IST field of an An IST is selected by a non-zero value in the IST field of an
interrupt-gate descriptor. When an interrupt occurs and the hardware interrupt-gate descriptor. When an interrupt occurs and the hardware
loads such a descriptor, the hardware automatically sets the new stack loads such a descriptor, the hardware automatically sets the new stack
pointer based on the IST value, then invokes the interrupt handler. If pointer based on the IST value, then invokes the interrupt handler. If
software wants to allow nested IST interrupts then the handler must software wants to allow nested IST interrupts then the handler must
adjust the IST values on entry to and exit from the interrupt handler. adjust the IST values on entry to and exit from the interrupt handler.
(this is occasionally done, e.g. for debug exceptions) (This is occasionally done, e.g. for debug exceptions.)
Events with different IST codes (i.e. with different stacks) can be Events with different IST codes (i.e. with different stacks) can be
nested. For example, a debug interrupt can safely be interrupted by an nested. For example, a debug interrupt can safely be interrupted by an
...@@ -58,17 +58,17 @@ The currently assigned IST stacks are :- ...@@ -58,17 +58,17 @@ The currently assigned IST stacks are :-
Used for interrupt 12 - Stack Fault Exception (#SS). Used for interrupt 12 - Stack Fault Exception (#SS).
This allows to recover from invalid stack segments. Rarely This allows the CPU to recover from invalid stack segments. Rarely
happens. happens.
* DOUBLEFAULT_STACK. EXCEPTION_STKSZ (PAGE_SIZE). * DOUBLEFAULT_STACK. EXCEPTION_STKSZ (PAGE_SIZE).
Used for interrupt 8 - Double Fault Exception (#DF). Used for interrupt 8 - Double Fault Exception (#DF).
Invoked when handling a exception causes another exception. Happens Invoked when handling one exception causes another exception. Happens
when the kernel is very confused (e.g. kernel stack pointer corrupt) when the kernel is very confused (e.g. kernel stack pointer corrupt).
Using a separate stack allows to recover from it well enough in many Using a separate stack allows the kernel to recover from it well enough
cases to still output an oops. in many cases to still output an oops.
* NMI_STACK. EXCEPTION_STKSZ (PAGE_SIZE). * NMI_STACK. EXCEPTION_STKSZ (PAGE_SIZE).
......
...@@ -3,26 +3,26 @@ ...@@ -3,26 +3,26 @@
Virtual memory map with 4 level page tables: Virtual memory map with 4 level page tables:
0000000000000000 - 00007fffffffffff (=47bits) user space, different per mm 0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm
hole caused by [48:63] sign extension hole caused by [48:63] sign extension
ffff800000000000 - ffff80ffffffffff (=40bits) guard hole ffff800000000000 - ffff80ffffffffff (=40 bits) guard hole
ffff810000000000 - ffffc0ffffffffff (=46bits) direct mapping of all phys. memory ffff810000000000 - ffffc0ffffffffff (=46 bits) direct mapping of all phys. memory
ffffc10000000000 - ffffc1ffffffffff (=40bits) hole ffffc10000000000 - ffffc1ffffffffff (=40 bits) hole
ffffc20000000000 - ffffe1ffffffffff (=45bits) vmalloc/ioremap space ffffc20000000000 - ffffe1ffffffffff (=45 bits) vmalloc/ioremap space
... unused hole ... ... unused hole ...
ffffffff80000000 - ffffffff82800000 (=40MB) kernel text mapping, from phys 0 ffffffff80000000 - ffffffff82800000 (=40 MB) kernel text mapping, from phys 0
... unused hole ... ... unused hole ...
ffffffff88000000 - fffffffffff00000 (=1919MB) module mapping space ffffffff88000000 - fffffffffff00000 (=1919 MB) module mapping space
The direct mapping covers all memory in the system upto the highest The direct mapping covers all memory in the system up to the highest
memory address (this means in some cases it can also include PCI memory memory address (this means in some cases it can also include PCI memory
holes) holes).
vmalloc space is lazily synchronized into the different PML4 pages of vmalloc space is lazily synchronized into the different PML4 pages of
the processes using the page fault handler, with init_level4_pgt as the processes using the page fault handler, with init_level4_pgt as
reference. reference.
Current X86-64 implementations only support 40 bit of address space, Current X86-64 implementations only support 40 bits of address space,
but we support upto 46bits. This expands into MBZ space in the page tables. but we support up to 46 bits. This expands into MBZ space in the page tables.
-Andi Kleen, Jul 2004 -Andi Kleen, Jul 2004
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment