Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 61873
b: refs/heads/master
c: 5417169
h: refs/heads/master
i:
  61871: cb6538c
v: v3
  • Loading branch information
David Chinner authored and Tim Shimmin committed Jul 19, 2007
1 parent aaabb3b commit fd5e4db
Show file tree
Hide file tree
Showing 634 changed files with 13,567 additions and 34,349 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: 2d9ce177e68645945e3366cfe2d66ee3c28cd4f2
refs/heads/master: 5417169026c3df151adf5a65eb061278b0a72e69
10 changes: 5 additions & 5 deletions trunk/Documentation/DocBook/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \

###
# The build process is as follows (targets):
# (xmldocs) [by docproc]
# file.tmpl --> file.xml +--> file.ps (psdocs) [by db2ps or xmlto]
# +--> file.pdf (pdfdocs) [by db2pdf or xmlto]
# +--> DIR=file (htmldocs) [by xmlto]
# +--> man/ (mandocs) [by xmlto]
# (xmldocs)
# file.tmpl --> file.xml +--> file.ps (psdocs)
# +--> file.pdf (pdfdocs)
# +--> DIR=file (htmldocs)
# +--> man/ (mandocs)


# for PDF and PS output you can choose between xmlto and docbook-utils tools
Expand Down
1 change: 1 addition & 0 deletions trunk/Documentation/DocBook/kernel-api.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ X!Ilib/string.c
!Earch/i386/lib/usercopy.c
</sect1>
<sect1><title>More Memory Management Functions</title>
!Iinclude/linux/rmap.h
!Emm/readahead.c
!Emm/filemap.c
!Emm/memory.c
Expand Down
3 changes: 2 additions & 1 deletion trunk/Documentation/connector/cn_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,9 @@ static void cn_test_timer_func(unsigned long __data)
struct cn_msg *m;
char data[32];

m = kzalloc(sizeof(*m) + sizeof(data), GFP_ATOMIC);
m = kmalloc(sizeof(*m) + sizeof(data), GFP_ATOMIC);
if (m) {
memset(m, 0, sizeof(*m) + sizeof(data));

memcpy(&m->id, &cn_test_id, sizeof(m->id));
m->seq = cn_test_timer_counter;
Expand Down
2 changes: 1 addition & 1 deletion trunk/Documentation/console/console.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ In newer kernels, the following are also available:

If sysfs is enabled, the contents of /sys/class/vtconsole can be
examined. This shows the console backends currently registered by the
system which are named vtcon<n> where <n> is an integer from 0 to 15. Thus:
system which are named vtcon<n> where <n> is an integer fro 0 to 15. Thus:

ls /sys/class/vtconsole
. .. vtcon0 vtcon1
Expand Down
192 changes: 27 additions & 165 deletions trunk/Documentation/drivers/edac/edac.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,44 @@

EDAC - Error Detection And Correction

Written by Doug Thompson <dougthompson@xmission.com>
Written by Doug Thompson <norsk5@xmission.com>
7 Dec 2005
17 Jul 2007 Updated


EDAC is maintained and written by:
EDAC was written by:
Thayne Harbaugh,
modified by Dave Peterson, Doug Thompson, et al,
from the bluesmoke.sourceforge.net project.

Doug Thompson, Dave Jiang, Dave Peterson et al,
original author: Thayne Harbaugh,

Contact:
website: bluesmoke.sourceforge.net
mailing list: bluesmoke-devel@lists.sourceforge.net

"bluesmoke" was the name for this device driver when it was "out-of-tree"
and maintained at sourceforge.net. When it was pushed into 2.6.16 for the
first time, it was renamed to 'EDAC'.

The bluesmoke project at sourceforge.net is now utilized as a 'staging area'
for EDAC development, before it is sent upstream to kernel.org

At the bluesmoke/EDAC project site, is a series of quilt patches against
recent kernels, stored in a SVN respository. For easier downloading, there
is also a tarball snapshot available.

============================================================================
EDAC PURPOSE

The 'edac' kernel module goal is to detect and report errors that occur
within the computer system running under linux.

MEMORY

In the initial release, memory Correctable Errors (CE) and Uncorrectable
Errors (UE) are the primary errors being harvested. These types of errors
are harvested by the 'edac_mc' class of device.
within the computer system. In the initial release, memory Correctable Errors
(CE) and Uncorrectable Errors (UE) are the primary errors being harvested.

Detecting CE events, then harvesting those events and reporting them,
CAN be a predictor of future UE events. With CE events, the system can
continue to operate, but with less safety. Preventive maintenance and
proactive part replacement of memory DIMMs exhibiting CEs can reduce
the likelihood of the dreaded UE events and system 'panics'.

NON-MEMORY

A new feature for EDAC, the edac_device class of device, was added in
the 2.6.23 version of the kernel.

This new device type allows for non-memory type of ECC hardware detectors
to have their states harvested and presented to userspace via the sysfs
interface.

Some architectures have ECC detectors for L1, L2 and L3 caches, along with DMA
engines, fabric switches, main data path switches, interconnections,
and various other hardware data paths. If the hardware reports it, then
a edac_device device probably can be constructed to harvest and present
that to userspace.


PCI BUS SCANNING

In addition, PCI Bus Parity and SERR Errors are scanned for on PCI devices
in order to determine if errors are occurring on data transfers.

The presence of PCI Parity errors must be examined with a grain of salt.
There are several add-in adapters that do NOT follow the PCI specification
with regards to Parity generation and reporting. The specification says
the vendor should tie the parity status bits to 0 if they do not intend
to generate parity. Some vendors do not do this, and thus the parity bit
can "float" giving false positives.

In the kernel there is a pci device attribute located in sysfs that is
checked by the EDAC PCI scanning code. If that attribute is set,
PCI parity/error scannining is skipped for that device. The attribute
is:

broken_parity_status

as is located in /sys/devices/pci<XXX>/0000:XX:YY.Z directorys for
PCI devices.

FUTURE HARDWARE SCANNING
[There are patches in the kernel queue which will allow for storage of
quirks of PCI devices reporting false parity positives. The 2.6.18
kernel should have those patches included. When that becomes available,
then EDAC will be patched to utilize that information to "skip" such
devices.]

EDAC will have future error detectors that will be integrated with
EDAC or added to it, in the following list:
Expand All @@ -101,14 +57,13 @@ and the like.
============================================================================
EDAC VERSIONING

EDAC is composed of a "core" module (edac_core.ko) and several Memory
EDAC is composed of a "core" module (edac_mc.ko) and several Memory
Controller (MC) driver modules. On a given system, the CORE
is loaded and one MC driver will be loaded. Both the CORE and
the MC driver (or edac_device driver) have individual versions that reflect
current release level of their respective modules.

Thus, to "report" on what version a system is running, one must report both
the CORE's and the MC driver's versions.
the MC driver have individual versions that reflect current release
level of their respective modules. Thus, to "report" on what version
a system is running, one must report both the CORE's and the
MC driver's versions.


LOADING
Expand All @@ -133,9 +88,8 @@ EDAC sysfs INTERFACE
EDAC presents a 'sysfs' interface for control, reporting and attribute
reporting purposes.

EDAC lives in the /sys/devices/system/edac directory.

Within this directory there currently reside 2 'edac' components:
EDAC lives in the /sys/devices/system/edac directory. Within this directory
there currently reside 2 'edac' components:

mc memory controller(s) system
pci PCI control and status system
Expand Down Expand Up @@ -234,7 +188,7 @@ In directory 'mc' are EDAC system overall control and attribute files:

Panic on UE control file:

'edac_mc_panic_on_ue'
'panic_on_ue'

An uncorrectable error will cause a machine panic. This is usually
desirable. It is a bad idea to continue when an uncorrectable error
Expand All @@ -245,38 +199,38 @@ Panic on UE control file:

LOAD TIME: module/kernel parameter: panic_on_ue=[0|1]

RUN TIME: echo "1" >/sys/devices/system/edac/mc/edac_mc_panic_on_ue
RUN TIME: echo "1" >/sys/devices/system/edac/mc/panic_on_ue


Log UE control file:

'edac_mc_log_ue'
'log_ue'

Generate kernel messages describing uncorrectable errors. These errors
are reported through the system message log system. UE statistics
will be accumulated even when UE logging is disabled.

LOAD TIME: module/kernel parameter: log_ue=[0|1]

RUN TIME: echo "1" >/sys/devices/system/edac/mc/edac_mc_log_ue
RUN TIME: echo "1" >/sys/devices/system/edac/mc/log_ue


Log CE control file:

'edac_mc_log_ce'
'log_ce'

Generate kernel messages describing correctable errors. These
errors are reported through the system message log system.
CE statistics will be accumulated even when CE logging is disabled.

LOAD TIME: module/kernel parameter: log_ce=[0|1]

RUN TIME: echo "1" >/sys/devices/system/edac/mc/edac_mc_log_ce
RUN TIME: echo "1" >/sys/devices/system/edac/mc/log_ce


Polling period control file:

'edac_mc_poll_msec'
'poll_msec'

The time period, in milliseconds, for polling for error information.
Too small a value wastes resources. Too large a value might delay
Expand All @@ -287,7 +241,7 @@ Polling period control file:

LOAD TIME: module/kernel parameter: poll_msec=[0|1]

RUN TIME: echo "1000" >/sys/devices/system/edac/mc/edac_mc_poll_msec
RUN TIME: echo "1000" >/sys/devices/system/edac/mc/poll_msec


============================================================================
Expand Down Expand Up @@ -633,95 +587,3 @@ Parity Count:


=======================================================================


EDAC_DEVICE type of device

In the header file, edac_core.h, there is a series of edac_device structures
and APIs for the EDAC_DEVICE.

User space access to an edac_device is through the sysfs interface.

At the location /sys/devices/system/edac (sysfs) new edac_device devices will
appear.

There is a three level tree beneath the above 'edac' directory. For example,
the 'test_device_edac' device (found at the bluesmoke.sourceforget.net website)
installs itself as:

/sys/devices/systm/edac/test-instance

in this directory are various controls, a symlink and one or more 'instance'
directorys.

The standard default controls are:

log_ce boolean to log CE events
log_ue boolean to log UE events
panic_on_ue boolean to 'panic' the system if an UE is encountered
(default off, can be set true via startup script)
poll_msec time period between POLL cycles for events

The test_device_edac device adds at least one of its own custom control:

test_bits which in the current test driver does nothing but
show how it is installed. A ported driver can
add one or more such controls and/or attributes
for specific uses.
One out-of-tree driver uses controls here to allow
for ERROR INJECTION operations to hardware
injection registers

The symlink points to the 'struct dev' that is registered for this edac_device.

INSTANCES

One or more instance directories are present. For the 'test_device_edac' case:

test-instance0


In this directory there are two default counter attributes, which are totals of
counter in deeper subdirectories.

ce_count total of CE events of subdirectories
ue_count total of UE events of subdirectories

BLOCKS

At the lowest directory level is the 'block' directory. There can be 0, 1
or more blocks specified in each instance.

test-block0


In this directory the default attributes are:

ce_count which is counter of CE events for this 'block'
of hardware being monitored
ue_count which is counter of UE events for this 'block'
of hardware being monitored


The 'test_device_edac' device adds 4 attributes and 1 control:

test-block-bits-0 for every POLL cycle this counter
is incremented
test-block-bits-1 every 10 cycles, this counter is bumped once,
and test-block-bits-0 is set to 0
test-block-bits-2 every 100 cycles, this counter is bumped once,
and test-block-bits-1 is set to 0
test-block-bits-3 every 1000 cycles, this counter is bumped once,
and test-block-bits-2 is set to 0


reset-counters writing ANY thing to this control will
reset all the above counters.


Use of the 'test_device_edac' driver should any others to create their own
unique drivers for their hardware systems.

The 'test_device_edac' sample driver is located at the
bluesmoke.sourceforge.net project site for EDAC.

21 changes: 10 additions & 11 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ Who: David Miller <davem@davemloft.net>
What: Video4Linux API 1 ioctls and video_decoder.h from Video devices.
When: December 2006
Files: include/linux/video_decoder.h
Check: include/linux/video_decoder.h
Why: V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
series. The old API have lots of drawbacks and don't provide enough
means to work with all video and audio standards. The newer API is
Expand Down Expand Up @@ -85,7 +84,7 @@ Who: Dominik Brodowski <linux@brodo.de>
What: remove EXPORT_SYMBOL(kernel_thread)
When: August 2006
Files: arch/*/kernel/*_ksyms.c
Check: kernel_thread
Funcs: kernel_thread
Why: kernel_thread is a low-level implementation detail. Drivers should
use the <linux/kthread.h> API instead which shields them from
implementation details and provides a higherlevel interface that
Expand Down Expand Up @@ -136,15 +135,6 @@ Who: Greg Kroah-Hartman <gregkh@suse.de>

---------------------------

What: vm_ops.nopage
When: Soon, provided in-kernel callers have been converted
Why: This interface is replaced by vm_ops.fault, but it has been around
forever, is used by a lot of drivers, and doesn't cost much to
maintain.
Who: Nick Piggin <npiggin@suse.de>

---------------------------

What: Interrupt only SA_* flags
When: September 2007
Why: The interrupt related SA_* flags are replaced by IRQF_* to move them
Expand All @@ -164,6 +154,15 @@ Who: Kay Sievers <kay.sievers@suse.de>

---------------------------

What: i2c-isa
When: December 2006
Why: i2c-isa is a non-sense and doesn't fit in the device driver
model. Drivers relying on it are better implemented as platform
drivers.
Who: Jean Delvare <khali@linux-fr.org>

---------------------------

What: i2c_adapter.list
When: July 2007
Why: Superfluous, this list duplicates the one maintained by the driver
Expand Down
Loading

0 comments on commit fd5e4db

Please sign in to comment.