Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 45487
b: refs/heads/master
c: eac681b
h: refs/heads/master
i:
  45485: 88d73d2
  45483: 4d7f655
  45479: 5978d0f
  45471: 0635de8
v: v3
  • Loading branch information
=?utf-8?q?Michel_D=C3=A4nzer?= authored and Dave Airlie committed Jan 8, 2007
1 parent d9fb7ba commit 04be2b3
Show file tree
Hide file tree
Showing 209 changed files with 932 additions and 2,151 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e176d397ad73ca76936e5638c2c81740dedb9d5d
refs/heads/master: eac681b3aec226c83f52d307254d88393aab5eb9
5 changes: 2 additions & 3 deletions trunk/Documentation/cachetlb.txt
Original file line number Diff line number Diff line change
Expand Up @@ -373,15 +373,14 @@ maps this page at its virtual address.
likely that you will need to flush the instruction cache
for copy_to_user_page().

void flush_anon_page(struct vm_area_struct *vma, struct page *page,
unsigned long vmaddr)
void flush_anon_page(struct page *page, unsigned long vmaddr)
When the kernel needs to access the contents of an anonymous
page, it calls this function (currently only
get_user_pages()). Note: flush_dcache_page() deliberately
doesn't work for an anonymous page. The default
implementation is a nop (and should remain so for all coherent
architectures). For incoherent architectures, it should flush
the cache of the page at vmaddr.
the cache of the page at vmaddr in the current user process.

void flush_kernel_dcache_page(struct page *page)
When the kernel needs to modify a user page is has obtained
Expand Down
8 changes: 0 additions & 8 deletions trunk/Documentation/filesystems/Locking
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ prototypes:
int (*releasepage) (struct page *, int);
int (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
loff_t offset, unsigned long nr_segs);
int (*launder_page) (struct page *);

locking rules:
All except set_page_dirty may block
Expand All @@ -189,7 +188,6 @@ bmap: yes
invalidatepage: no yes
releasepage: no yes
direct_IO: no
launder_page: no yes

->prepare_write(), ->commit_write(), ->sync_page() and ->readpage()
may be called from the request handler (/dev/loop).
Expand Down Expand Up @@ -283,12 +281,6 @@ buffers from the page in preparation for freeing it. It returns zero to
indicate that the buffers are (or may be) freeable. If ->releasepage is zero,
the kernel assumes that the fs has no private interest in the buffers.

->launder_page() may be called prior to releasing a page if
it is still found to be dirty. It returns zero if the page was successfully
cleaned, or an error value if not. Note that in order to prevent the page
getting mapped back in and redirtied, it needs to be kept locked
across the entire operation.

Note: currently almost all instances of address_space methods are
using BKL for internal serialization and that's one of the worst sources
of contention. Normally they are calling library functions (in fs/buffer.c)
Expand Down
224 changes: 72 additions & 152 deletions trunk/Documentation/kdump/kdump.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ You can use common Linux commands, such as cp and scp, to copy the
memory image to a dump file on the local disk, or across the network to
a remote system.

Kdump and kexec are currently supported on the x86, x86_64, ppc64 and IA64
Kdump and kexec are currently supported on the x86, x86_64, and ppc64
architectures.

When the system kernel boots, it reserves a small section of memory for
Expand Down Expand Up @@ -54,64 +54,59 @@ memory," in two ways:
Setup and Installation
======================

Install kexec-tools
-------------------
Install kexec-tools and the Kdump patch
---------------------------------------

1) Login as the root user.

2) Download the kexec-tools user-space package from the following URL:

http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-testing-20061214.tar.gz
http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-1.101.tar.gz

Note: Latest kexec-tools-testing git tree is available at
3) Unpack the tarball with the tar command, as follows:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/kexec-tools-testing.git
or
http://www.kernel.org/git/?p=linux/kernel/git/horms/kexec-tools-testing.git;a=summary
tar xvpzf kexec-tools-1.101.tar.gz

3) Unpack the tarball with the tar command, as follows:
4) Download the latest consolidated Kdump patch from the following URL:

tar xvpzf kexec-tools-testing-20061214.tar.gz
http://lse.sourceforge.net/kdump/

4) Change to the kexec-tools-1.101 directory, as follows:
(This location is being used until all the user-space Kdump patches
are integrated with the kexec-tools package.)

cd kexec-tools-testing-20061214
5) Change to the kexec-tools-1.101 directory, as follows:

5) Configure the package, as follows:
cd kexec-tools-1.101

./configure
6) Apply the consolidated patch to the kexec-tools-1.101 source tree
with the patch command, as follows. (Modify the path to the downloaded
patch as necessary.)

6) Compile the package, as follows:
patch -p1 < /path-to-kdump-patch/kexec-tools-1.101-kdump.patch

make
7) Configure the package, as follows:

7) Install the package, as follows:
./configure

make install
8) Compile the package, as follows:

make

Build the system and dump-capture kernels
-----------------------------------------
There are two possible methods of using Kdump.
9) Install the package, as follows:

1) Build a separate custom dump-capture kernel for capturing the
kernel core dump.
make install

2) Or use the system kernel binary itself as dump-capture kernel and there is
no need to build a separate dump-capture kernel. This is possible
only with the architecutres which support a relocatable kernel. As
of today i386 and ia64 architectures support relocatable kernel.

Building a relocatable kernel is advantageous from the point of view that
one does not have to build a second kernel for capturing the dump. But
at the same time one might want to build a custom dump capture kernel
suitable to his needs.
Download and build the system and dump-capture kernels
------------------------------------------------------

Following are the configuration setting required for system and
dump-capture kernels for enabling kdump support.
Download the mainline (vanilla) kernel source code (2.6.13-rc1 or newer)
from http://www.kernel.org. Two kernels must be built: a system kernel
and a dump-capture kernel. Use the following steps to configure these
kernels with the necessary kexec and Kdump features:

System kernel config options
----------------------------
System kernel
-------------

1) Enable "kexec system call" in "Processor type and features."

Expand All @@ -137,161 +132,89 @@ System kernel config options
analysis tools require a vmlinux with debug symbols in order to read
and analyze a dump file.

Dump-capture kernel config options (Arch Independent)
-----------------------------------------------------
4) Make and install the kernel and its modules. Update the boot loader
(such as grub, yaboot, or lilo) configuration files as necessary.

1) Enable "kernel crash dumps" support under "Processor type and
features":
5) Boot the system kernel with the boot parameter "crashkernel=Y@X",
where Y specifies how much memory to reserve for the dump-capture kernel
and X specifies the beginning of this reserved memory. For example,
"crashkernel=64M@16M" tells the system kernel to reserve 64 MB of memory
starting at physical address 0x01000000 for the dump-capture kernel.

CONFIG_CRASH_DUMP=y
On x86 and x86_64, use "crashkernel=64M@16M".

2) Enable "/proc/vmcore support" under "Filesystems" -> "Pseudo filesystems".
On ppc64, use "crashkernel=128M@32M".

CONFIG_PROC_VMCORE=y
(CONFIG_PROC_VMCORE is set by default when CONFIG_CRASH_DUMP is selected.)

Dump-capture kernel config options (Arch Dependent, i386)
--------------------------------------------------------
1) On x86, enable high memory support under "Processor type and
The dump-capture kernel
-----------------------

1) Under "General setup," append "-kdump" to the current string in
"Local version."

2) On x86, enable high memory support under "Processor type and
features":

CONFIG_HIGHMEM64G=y
or
CONFIG_HIGHMEM4G

2) On x86 and x86_64, disable symmetric multi-processing support
3) On x86 and x86_64, disable symmetric multi-processing support
under "Processor type and features":

CONFIG_SMP=n

(If CONFIG_SMP=y, then specify maxcpus=1 on the kernel command line
when loading the dump-capture kernel, see section "Load the Dump-capture
Kernel".)

3) If one wants to build and use a relocatable kernel,
Enable "Build a relocatable kernel" support under "Processor type and
features"
4) On ppc64, disable NUMA support and enable EMBEDDED support:

CONFIG_RELOCATABLE=y
CONFIG_NUMA=n
CONFIG_EMBEDDED=y
CONFIG_EEH=N for the dump-capture kernel

4) Use a suitable value for "Physical address where the kernel is
loaded" (under "Processor type and features"). This only appears when
"kernel crash dumps" is enabled. A suitable value depends upon
whether kernel is relocatable or not.

If you are using a relocatable kernel use CONFIG_PHYSICAL_START=0x100000
This will compile the kernel for physical address 1MB, but given the fact
kernel is relocatable, it can be run from any physical address hence
kexec boot loader will load it in memory region reserved for dump-capture
kernel.

Otherwise it should be the start of memory region reserved for
second kernel using boot parameter "crashkernel=Y@X". Here X is
start of memory region reserved for dump-capture kernel.
Generally X is 16MB (0x1000000). So you can set
CONFIG_PHYSICAL_START=0x1000000

5) Make and install the kernel and its modules. DO NOT add this kernel
to the boot loader configuration files.

Dump-capture kernel config options (Arch Dependent, x86_64)
----------------------------------------------------------
1) On x86 and x86_64, disable symmetric multi-processing support
under "Processor type and features":

CONFIG_SMP=n
5) Enable "kernel crash dumps" support under "Processor type and
features":

(If CONFIG_SMP=y, then specify maxcpus=1 on the kernel command line
when loading the dump-capture kernel, see section "Load the Dump-capture
Kernel".)
CONFIG_CRASH_DUMP=y

2) Use a suitable value for "Physical address where the kernel is
6) Use a suitable value for "Physical address where the kernel is
loaded" (under "Processor type and features"). This only appears when
"kernel crash dumps" is enabled. By default this value is 0x1000000
(16MB). It should be the same as X in the "crashkernel=Y@X" boot
parameter.

For x86_64, normally "CONFIG_PHYSICAL_START=0x1000000".

3) Make and install the kernel and its modules. DO NOT add this kernel
to the boot loader configuration files.

Dump-capture kernel config options (Arch Dependent, ppc64)
----------------------------------------------------------
parameter discussed above.

- Make and install the kernel and its modules. DO NOT add this kernel
to the boot loader configuration files.
On x86 and x86_64, use "CONFIG_PHYSICAL_START=0x1000000".

Dump-capture kernel config options (Arch Dependent, ia64)
----------------------------------------------------------
(To be filled)
On ppc64 the value is automatically set at 32MB when
CONFIG_CRASH_DUMP is set.

6) Optionally enable "/proc/vmcore support" under "Filesystems" ->
"Pseudo filesystems".

Boot into System Kernel
=======================

1) Make and install the kernel and its modules. Update the boot loader
(such as grub, yaboot, or lilo) configuration files as necessary.

2) Boot the system kernel with the boot parameter "crashkernel=Y@X",
where Y specifies how much memory to reserve for the dump-capture kernel
and X specifies the beginning of this reserved memory. For example,
"crashkernel=64M@16M" tells the system kernel to reserve 64 MB of memory
starting at physical address 0x01000000 (16MB) for the dump-capture kernel.
CONFIG_PROC_VMCORE=y
(CONFIG_PROC_VMCORE is set by default when CONFIG_CRASH_DUMP is selected.)

On x86 and x86_64, use "crashkernel=64M@16M".
7) Make and install the kernel and its modules. DO NOT add this kernel
to the boot loader configuration files.

On ppc64, use "crashkernel=128M@32M".

Load the Dump-capture Kernel
============================

After booting to the system kernel, dump-capture kernel needs to be
loaded.

Based on the architecture and type of image (relocatable or not), one
can choose to load the uncompressed vmlinux or compressed bzImage/vmlinuz
of dump-capture kernel. Following is the summary.

For i386:
- Use vmlinux if kernel is not relocatable.
- Use bzImage/vmlinuz if kernel is relocatable.
For x86_64:
- Use vmlinux
For ppc64:
- Use vmlinux
For ia64:
(To be filled)

If you are using a uncompressed vmlinux image then use following command
to load dump-capture kernel.
After booting to the system kernel, load the dump-capture kernel using
the following command:

kexec -p <dump-capture-kernel-vmlinux-image> \
kexec -p <dump-capture-kernel> \
--initrd=<initrd-for-dump-capture-kernel> --args-linux \
--append="root=<root-dev> <arch-specific-options>"

If you are using a compressed bzImage/vmlinuz, then use following command
to load dump-capture kernel.

kexec -p <dump-capture-kernel-bzImage> \
--initrd=<initrd-for-dump-capture-kernel> \
--append="root=<root-dev> <arch-specific-options>"

Following are the arch specific command line options to be used while
loading dump-capture kernel.

For i386 and x86_64:
"init 1 irqpoll maxcpus=1"

For ppc64:
"init 1 maxcpus=1 noirqdistrib"

For IA64
(To be filled)
--append="root=<root-dev> init 1 irqpoll"


Notes on loading the dump-capture kernel:

* <dump-capture-kernel> must be a vmlinux image (that is, an
uncompressed ELF image). bzImage does not work at this time.

* By default, the ELF headers are stored in ELF64 format to support
systems with more than 4GB memory. The --elf32-core-headers option can
be used to force the generation of ELF32 headers. This is necessary
Expand All @@ -308,9 +231,6 @@ Notes on loading the dump-capture kernel:
* "init 1" boots the dump-capture kernel into single-user mode without
networking. If you want networking, use "init 3."

* We generally don' have to bring up a SMP kernel just to capture the
dump. Hence generally it is useful either to build a UP dump-capture
kernel or specify maxcpus=1 option while loading dump-capture kernel.

Kernel Panic
============
Expand Down
4 changes: 2 additions & 2 deletions trunk/Documentation/powerpc/mpc52xx-device-tree-bindings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,8 @@ rtc@<addr> rtc *-rtc Real time clock
mscan@<addr> mscan *-mscan CAN bus controller
pci@<addr> pci *-pci PCI bridge
serial@<addr> serial *-psc-uart PSC in serial mode
i2s@<addr> sound *-psc-i2s PSC in i2s mode
ac97@<addr> sound *-psc-ac97 PSC in ac97 mode
i2s@<addr> i2s *-psc-i2s PSC in i2s mode
ac97@<addr> ac97 *-psc-ac97 PSC in ac97 mode
spi@<addr> spi *-psc-spi PSC in spi mode
irda@<addr> irda *-psc-irda PSC in IrDA mode
spi@<addr> spi *-spi MPC52xx spi device
Expand Down
4 changes: 0 additions & 4 deletions trunk/Documentation/x86_64/boot-options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,6 @@ APICs
apicmaintimer. Useful when your PIT timer is totally
broken.

disable_8254_timer / enable_8254_timer
Enable interrupt 0 timer routing over the 8254 in addition to over
the IO-APIC. The kernel tries to set a sensible default.

Early Console

syntax: earlyprintk=vga
Expand Down
Loading

0 comments on commit 04be2b3

Please sign in to comment.