Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d2cccdd authored by Jonathan Corbet's avatar Jonathan Corbet
Browse files

Merge branch 'doc-tweaks' into docs-next

The creation of the admin and process guides is a great thing, but, without
care, we risk replacing a messy docs directory with a few messy Sphinx
books.  In an attempt to head that off and show what I'm thinking, here's a
set of tweaks that, I think, make the existing Sphinx-formatted docs a bit
more accessible.
parents 2797cd03 67972a53
Loading
Loading
Loading
Loading
+0 −50
Original line number Diff line number Diff line
How to deal with bad memory e.g. reported by memtest86+ ?
=========================================================

March 2008
Jan-Simon Moeller, dl9pf@gmx.de



There are three possibilities I know of:

1) Reinsert/swap the memory modules

2) Buy new modules (best!) or try to exchange the memory
   if you have spare-parts

3) Use BadRAM or memmap

This Howto is about number 3) .


BadRAM
######

BadRAM is the actively developed and available as kernel-patch
here:  http://rick.vanrein.org/linux/badram/

For more details see the BadRAM documentation.

memmap
######

memmap is already in the kernel and usable as kernel-parameter at
boot-time.  Its syntax is slightly strange and you may need to
calculate the values by yourself!

Syntax to exclude a memory area (see admin-guide/kernel-parameters.rst for details)::

	memmap=<size>$<address>

Example: memtest86+ reported here errors at address 0x18691458, 0x18698424 and
some others. All had 0x1869xxxx in common, so I chose a pattern of
0x18690000,0xffff0000.

With the numbers of the example above::

	memmap=64K$0x18690000

or::

	memmap=0x10000$0x18690000
+0 −68
Original line number Diff line number Diff line
Basic kernel profiling
======================


These instructions are deliberately very basic. If you want something clever,
go read the real docs ;-)

Please don't add more stuff, but feel free to
correct my mistakes ;-)    (mbligh@aracnet.com)

Thanks to John Levon, Dave Hansen, et al. for help writing this.

``<test>`` is the thing you're trying to measure.
Make sure you have the correct ``System.map`` / ``vmlinux`` referenced!

It is probably easiest to use ``make install`` for linux and hack
``/sbin/installkernel`` to copy ``vmlinux`` to ``/boot``, in addition to
``vmlinuz``, ``config``, ``System.map``, which are usually installed by default.

Readprofile
-----------

A recent ``readprofile`` command is needed for 2.6, such as found in util-linux
2.12a, which can be downloaded from:

	http://www.kernel.org/pub/linux/utils/util-linux/

Most distributions will ship it already.

Add ``profile=2`` to the kernel command line.

Some ``readprofile`` commands::

	clear		readprofile -r
			<test>
	dump output	readprofile -m /boot/System.map > captured_profile

Oprofile
--------

Get the source (see Changes for required version) from
http://oprofile.sourceforge.net/ and add ``idle=poll`` to the kernel command
line.

Configure with ``CONFIG_PROFILING=y`` and ``CONFIG_OPROFILE=y`` & reboot on new kernel::

	./configure --with-kernel-support
	make install

For superior results, be sure to enable the local APIC. If opreport sees
a 0Hz CPU, APIC was not on. Be aware that idle=poll may mean a performance
penalty.

One time setup::

			opcontrol --setup --vmlinux=/boot/vmlinux

Some ``opcontrol`` commands::

	clear		opcontrol --reset
	start		opcontrol --start
		<test>
	stop		opcontrol --stop
	dump output	opreport >  output_file

To only report on the kernel, run ``opreport -l /boot/vmlinux > output_file``

A reset is needed to clear old statistics, which survive a reboot.
+39 −14
Original line number Diff line number Diff line
Linux Kernel User's Documentation
=================================
The Linux kernel user's and administrator's guide
=================================================

Contents:
The following is a collection of user-oriented documents that have been
added to the kernel over time.  There is, as yet, little overall order or
organization here — this material was not written to be a single, coherent
document!  With luck things will improve quickly over time.

This initial section contains overall information, including the README
file describing the kernel as a whole, documentation on kernel parameters,
etc. 

.. toctree::
   :maxdepth: 2
   :numbered:
   :maxdepth: 1

   README
   kernel-parameters
   devices

Here is a set of documents aimed at users who are trying to track down
problems and bugs in particular.

.. toctree::
   :maxdepth: 1
   
   reporting-bugs
   security-bugs
   bug-hunting
   oops-tracing
   ramoops
   initrd
   init
   dynamic-debug-howto
   security-bugs
   kernel-parameters
   init

This is the beginning of a section with information of interest to
application developers.  Documents covering various aspects of the kernel
ABI will be found here.

.. toctree::
   :maxdepth: 1
   
   sysfs-rules

The rest of this manual consists of various unordered guides on how to
configure specific aspects of kernel behavior to your liking.

.. toctree::
   :maxdepth: 1
   
   initrd
   serial-console
   braille-console
   parport
@@ -25,13 +55,9 @@ Contents:
   sysrq
   unicode
   vga-softcursor
   sysfs-rules
   devices
   binfmt-misc
   mono
   java
   bad-memory
   basic-profiling

.. only::  subproject and html

@@ -39,4 +65,3 @@ Contents:
   =======

   * :ref:`genindex`
+2 −2
Original line number Diff line number Diff line
Kernel Parameters
~~~~~~~~~~~~~~~~~
The kernel's command-line parameters
====================================

The following is a consolidated list of the kernel parameters as
implemented by the __setup(), core_param() and module_param() macros
+2 −2
Original line number Diff line number Diff line
Rules on how to access information in the Linux kernel sysfs
============================================================
Rules on how to access information in sysfs
===========================================

The kernel-exported sysfs exports internal kernel implementation details
and depends on internal kernel structures and layout. It is agreed upon
Loading