Skip to content

Commit 6988f20

Browse files
committed
Merge branch 'fixes-2.6.39' into for-2.6.40
2 parents 0415b00 + 6ea0c34 commit 6988f20

File tree

830 files changed

+33294
-15847
lines changed

Some content is hidden

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

830 files changed

+33294
-15847
lines changed

Documentation/ABI/testing/sysfs-bus-pci-devices-cciss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,15 @@ Kernel Version: 2.6.31
5959
Contact: iss_storagedev@hp.com
6060
Description: Displays the usage count (number of opens) of logical drive Y
6161
of controller X.
62+
63+
Where: /sys/bus/pci/devices/<dev>/ccissX/resettable
64+
Date: February 2011
65+
Kernel Version: 2.6.38
66+
Contact: iss_storagedev@hp.com
67+
Description: Value of 1 indicates the controller can honor the reset_devices
68+
kernel parameter. Value of 0 indicates reset_devices cannot be
69+
honored. This is to allow, for example, kexec tools to be able
70+
to warn the user if they designate an unresettable device as
71+
a dump device, as kdump requires resetting the device in order
72+
to work reliably.
73+

Documentation/ABI/testing/sysfs-fs-ext4

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Description:
4848
will have its blocks allocated out of its own unique
4949
preallocation pool.
5050

51-
What: /sys/fs/ext4/<disk>/inode_readahead
51+
What: /sys/fs/ext4/<disk>/inode_readahead_blks
5252
Date: March 2008
5353
Contact: "Theodore Ts'o" <tytso@mit.edu>
5454
Description:
@@ -85,7 +85,14 @@ Date: June 2008
8585
Contact: "Theodore Ts'o" <tytso@mit.edu>
8686
Description:
8787
Tuning parameter which (if non-zero) controls the goal
88-
inode used by the inode allocator in p0reference to
89-
all other allocation hueristics. This is intended for
88+
inode used by the inode allocator in preference to
89+
all other allocation heuristics. This is intended for
9090
debugging use only, and should be 0 on production
9191
systems.
92+
93+
What: /sys/fs/ext4/<disk>/max_writeback_mb_bump
94+
Date: September 2009
95+
Contact: "Theodore Ts'o" <tytso@mit.edu>
96+
Description:
97+
The maximum number of megabytes the writeback code will
98+
try to write out before move on to another inode.

Documentation/DocBook/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ mandocs: $(MAN)
5555
build_images = mkdir -p $(objtree)/Documentation/DocBook/media/ && \
5656
cp $(srctree)/Documentation/DocBook/dvb/*.png \
5757
$(srctree)/Documentation/DocBook/v4l/*.gif \
58-
$(srctree)/Documentation/DocBook/v4l/*.png \
5958
$(objtree)/Documentation/DocBook/media/
6059

6160
xmldoclinks:

Documentation/DocBook/rapidio.tmpl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@
133133
!Idrivers/rapidio/rio-sysfs.c
134134
</sect1>
135135
<sect1 id="PPC32_support"><title>PPC32 support</title>
136-
!Earch/powerpc/sysdev/fsl_rio.c
137136
!Iarch/powerpc/sysdev/fsl_rio.c
138137
</sect1>
139138
</chapter>

Documentation/development-process/1.Intro

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ information on kernel development.
5656

5757
1.2: WHAT THIS DOCUMENT IS ABOUT
5858

59-
The Linux kernel, at over 6 million lines of code and well over 1000 active
60-
contributors, is one of the largest and most active free software projects
61-
in existence. Since its humble beginning in 1991, this kernel has evolved
62-
into a best-of-breed operating system component which runs on pocket-sized
63-
digital music players, desktop PCs, the largest supercomputers in
64-
existence, and all types of systems in between. It is a robust, efficient,
65-
and scalable solution for almost any situation.
59+
The Linux kernel, at over 8 million lines of code and well over 1000
60+
contributors to each release, is one of the largest and most active free
61+
software projects in existence. Since its humble beginning in 1991, this
62+
kernel has evolved into a best-of-breed operating system component which
63+
runs on pocket-sized digital music players, desktop PCs, the largest
64+
supercomputers in existence, and all types of systems in between. It is a
65+
robust, efficient, and scalable solution for almost any situation.
6666

6767
With the growth of Linux has come an increase in the number of developers
6868
(and companies) wishing to participate in its development. Hardware
@@ -115,7 +115,7 @@ This document was written by Jonathan Corbet, corbet@lwn.net. It has been
115115
improved by comments from Johannes Berg, James Berry, Alex Chiang, Roland
116116
Dreier, Randy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh,
117117
Amanda McPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata, and
118-
Jochen Voß.
118+
Jochen Voß.
119119

120120
This work was supported by the Linux Foundation; thanks especially to
121121
Amanda McPherson, who saw the value of this effort and made it all happen.
@@ -221,7 +221,7 @@ include:
221221
- Everything that was said above about code review applies doubly to
222222
closed-source code. Since this code is not available at all, it cannot
223223
have been reviewed by the community and will, beyond doubt, have serious
224-
problems.
224+
problems.
225225

226226
Makers of embedded systems, in particular, may be tempted to disregard much
227227
of what has been said in this section in the belief that they are shipping

Documentation/development-process/2.Process

Lines changed: 88 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,15 @@ The kernel developers use a loosely time-based release process, with a new
1414
major kernel release happening every two or three months. The recent
1515
release history looks like this:
1616

17-
2.6.26 July 13, 2008
18-
2.6.25 April 16, 2008
19-
2.6.24 January 24, 2008
20-
2.6.23 October 9, 2007
21-
2.6.22 July 8, 2007
22-
2.6.21 April 25, 2007
23-
2.6.20 February 4, 2007
17+
2.6.38 March 14, 2011
18+
2.6.37 January 4, 2011
19+
2.6.36 October 20, 2010
20+
2.6.35 August 1, 2010
21+
2.6.34 May 15, 2010
22+
2.6.33 February 24, 2010
2423

2524
Every 2.6.x release is a major kernel release with new features, internal
26-
API changes, and more. A typical 2.6 release can contain over 10,000
25+
API changes, and more. A typical 2.6 release can contain nearly 10,000
2726
changesets with changes to several hundred thousand lines of code. 2.6 is
2827
thus the leading edge of Linux kernel development; the kernel uses a
2928
rolling development model which is continually integrating major changes.
@@ -42,13 +41,13 @@ merge window do not come out of thin air; they have been collected, tested,
4241
and staged ahead of time. How that process works will be described in
4342
detail later on).
4443

45-
The merge window lasts for two weeks. At the end of this time, Linus
46-
Torvalds will declare that the window is closed and release the first of
47-
the "rc" kernels. For the kernel which is destined to be 2.6.26, for
48-
example, the release which happens at the end of the merge window will be
49-
called 2.6.26-rc1. The -rc1 release is the signal that the time to merge
50-
new features has passed, and that the time to stabilize the next kernel has
51-
begun.
44+
The merge window lasts for approximately two weeks. At the end of this
45+
time, Linus Torvalds will declare that the window is closed and release the
46+
first of the "rc" kernels. For the kernel which is destined to be 2.6.40,
47+
for example, the release which happens at the end of the merge window will
48+
be called 2.6.40-rc1. The -rc1 release is the signal that the time to
49+
merge new features has passed, and that the time to stabilize the next
50+
kernel has begun.
5251

5352
Over the next six to ten weeks, only patches which fix problems should be
5453
submitted to the mainline. On occasion a more significant change will be
@@ -66,28 +65,27 @@ will get up to somewhere between -rc6 and -rc9 before the kernel is
6665
considered to be sufficiently stable and the final 2.6.x release is made.
6766
At that point the whole process starts over again.
6867

69-
As an example, here is how the 2.6.25 development cycle went (all dates in
70-
2008):
71-
72-
January 24 2.6.24 stable release
73-
February 10 2.6.25-rc1, merge window closes
74-
February 15 2.6.25-rc2
75-
February 24 2.6.25-rc3
76-
March 4 2.6.25-rc4
77-
March 9 2.6.25-rc5
78-
March 16 2.6.25-rc6
79-
March 25 2.6.25-rc7
80-
April 1 2.6.25-rc8
81-
April 11 2.6.25-rc9
82-
April 16 2.6.25 stable release
68+
As an example, here is how the 2.6.38 development cycle went (all dates in
69+
2011):
70+
71+
January 4 2.6.37 stable release
72+
January 18 2.6.38-rc1, merge window closes
73+
January 21 2.6.38-rc2
74+
February 1 2.6.38-rc3
75+
February 7 2.6.38-rc4
76+
February 15 2.6.38-rc5
77+
February 21 2.6.38-rc6
78+
March 1 2.6.38-rc7
79+
March 7 2.6.38-rc8
80+
March 14 2.6.38 stable release
8381

8482
How do the developers decide when to close the development cycle and create
8583
the stable release? The most significant metric used is the list of
8684
regressions from previous releases. No bugs are welcome, but those which
8785
break systems which worked in the past are considered to be especially
8886
serious. For this reason, patches which cause regressions are looked upon
8987
unfavorably and are quite likely to be reverted during the stabilization
90-
period.
88+
period.
9189

9290
The developers' goal is to fix all known regressions before the stable
9391
release is made. In the real world, this kind of perfection is hard to
@@ -99,26 +97,34 @@ kernels go out with a handful of known regressions though, hopefully, none
9997
of them are serious.
10098

10199
Once a stable release is made, its ongoing maintenance is passed off to the
102-
"stable team," currently comprised of Greg Kroah-Hartman and Chris Wright.
103-
The stable team will release occasional updates to the stable release using
104-
the 2.6.x.y numbering scheme. To be considered for an update release, a
105-
patch must (1) fix a significant bug, and (2) already be merged into the
106-
mainline for the next development kernel. Continuing our 2.6.25 example,
107-
the history (as of this writing) is:
108-
109-
May 1 2.6.25.1
110-
May 6 2.6.25.2
111-
May 9 2.6.25.3
112-
May 15 2.6.25.4
113-
June 7 2.6.25.5
114-
June 9 2.6.25.6
115-
June 16 2.6.25.7
116-
June 21 2.6.25.8
117-
June 24 2.6.25.9
118-
119-
Stable updates for a given kernel are made for approximately six months;
120-
after that, the maintenance of stable releases is solely the responsibility
121-
of the distributors which have shipped that particular kernel.
100+
"stable team," currently consisting of Greg Kroah-Hartman. The stable team
101+
will release occasional updates to the stable release using the 2.6.x.y
102+
numbering scheme. To be considered for an update release, a patch must (1)
103+
fix a significant bug, and (2) already be merged into the mainline for the
104+
next development kernel. Kernels will typically receive stable updates for
105+
a little more than one development cycle past their initial release. So,
106+
for example, the 2.6.36 kernel's history looked like:
107+
108+
October 10 2.6.36 stable release
109+
November 22 2.6.36.1
110+
December 9 2.6.36.2
111+
January 7 2.6.36.3
112+
February 17 2.6.36.4
113+
114+
2.6.36.4 was the final stable update for the 2.6.36 release.
115+
116+
Some kernels are designated "long term" kernels; they will receive support
117+
for a longer period. As of this writing, the current long term kernels
118+
and their maintainers are:
119+
120+
2.6.27 Willy Tarreau (Deep-frozen stable kernel)
121+
2.6.32 Greg Kroah-Hartman
122+
2.6.35 Andi Kleen (Embedded flag kernel)
123+
124+
The selection of a kernel for long-term support is purely a matter of a
125+
maintainer having the need and the time to maintain that release. There
126+
are no known plans for long-term support for any specific upcoming
127+
release.
122128

123129

124130
2.2: THE LIFECYCLE OF A PATCH
@@ -130,7 +136,7 @@ each patch implements a change which is desirable to have in the mainline.
130136
This process can happen quickly for minor fixes, or, in the case of large
131137
and controversial changes, go on for years. Much developer frustration
132138
comes from a lack of understanding of this process or from attempts to
133-
circumvent it.
139+
circumvent it.
134140

135141
In the hopes of reducing that frustration, this document will describe how
136142
a patch gets into the kernel. What follows below is an introduction which
@@ -193,8 +199,8 @@ involved.
193199
2.3: HOW PATCHES GET INTO THE KERNEL
194200

195201
There is exactly one person who can merge patches into the mainline kernel
196-
repository: Linus Torvalds. But, of the over 12,000 patches which went
197-
into the 2.6.25 kernel, only 250 (around 2%) were directly chosen by Linus
202+
repository: Linus Torvalds. But, of the over 9,500 patches which went
203+
into the 2.6.38 kernel, only 112 (around 1.3%) were directly chosen by Linus
198204
himself. The kernel project has long since grown to a size where no single
199205
developer could possibly inspect and select every patch unassisted. The
200206
way the kernel developers have addressed this growth is through the use of
@@ -229,7 +235,7 @@ first in trees dedicated to network device drivers, wireless networking,
229235
etc. This chain of repositories can be arbitrarily long, though it rarely
230236
exceeds two or three links. Since each maintainer in the chain trusts
231237
those managing lower-level trees, this process is known as the "chain of
232-
trust."
238+
trust."
233239

234240
Clearly, in a system like this, getting patches into the kernel depends on
235241
finding the right maintainer. Sending patches directly to Linus is not
@@ -254,7 +260,7 @@ The answer comes in the form of -next trees, where subsystem trees are
254260
collected for testing and review. The older of these trees, maintained by
255261
Andrew Morton, is called "-mm" (for memory management, which is how it got
256262
started). The -mm tree integrates patches from a long list of subsystem
257-
trees; it also has some patches aimed at helping with debugging.
263+
trees; it also has some patches aimed at helping with debugging.
258264

259265
Beyond that, -mm contains a significant collection of patches which have
260266
been selected by Andrew directly. These patches may have been posted on a
@@ -264,8 +270,8 @@ subsystem tree of last resort; if there is no other obvious path for a
264270
patch into the mainline, it is likely to end up in -mm. Miscellaneous
265271
patches which accumulate in -mm will eventually either be forwarded on to
266272
an appropriate subsystem tree or be sent directly to Linus. In a typical
267-
development cycle, approximately 10% of the patches going into the mainline
268-
get there via -mm.
273+
development cycle, approximately 5-10% of the patches going into the
274+
mainline get there via -mm.
269275

270276
The current -mm patch is available in the "mmotm" (-mm of the moment)
271277
directory at:
@@ -275,7 +281,7 @@ directory at:
275281
Use of the MMOTM tree is likely to be a frustrating experience, though;
276282
there is a definite chance that it will not even compile.
277283

278-
The other -next tree, started more recently, is linux-next, maintained by
284+
The primary tree for next-cycle patch merging is linux-next, maintained by
279285
Stephen Rothwell. The linux-next tree is, by design, a snapshot of what
280286
the mainline is expected to look like after the next merge window closes.
281287
Linux-next trees are announced on the linux-kernel and linux-next mailing
@@ -287,41 +293,38 @@ Some information about linux-next has been gathered at:
287293

288294
http://linux.f-seidel.de/linux-next/pmwiki/
289295

290-
How the linux-next tree will fit into the development process is still
291-
changing. As of this writing, the first full development cycle involving
292-
linux-next (2.6.26) is coming to an end; thus far, it has proved to be a
293-
valuable resource for finding and fixing integration problems before the
294-
beginning of the merge window. See http://lwn.net/Articles/287155/ for
295-
more information on how linux-next has worked to set up the 2.6.27 merge
296-
window.
297-
298-
Some developers have begun to suggest that linux-next should be used as the
299-
target for future development as well. The linux-next tree does tend to be
300-
far ahead of the mainline and is more representative of the tree into which
301-
any new work will be merged. The downside to this idea is that the
302-
volatility of linux-next tends to make it a difficult development target.
303-
See http://lwn.net/Articles/289013/ for more information on this topic, and
304-
stay tuned; much is still in flux where linux-next is involved.
296+
Linux-next has become an integral part of the kernel development process;
297+
all patches merged during a given merge window should really have found
298+
their way into linux-next some time before the merge window opens.
299+
305300

306301
2.4.1: STAGING TREES
307302

308-
The kernel source tree now contains the drivers/staging/ directory, where
303+
The kernel source tree contains the drivers/staging/ directory, where
309304
many sub-directories for drivers or filesystems that are on their way to
310305
being added to the kernel tree live. They remain in drivers/staging while
311306
they still need more work; once complete, they can be moved into the
312307
kernel proper. This is a way to keep track of drivers that aren't
313308
up to Linux kernel coding or quality standards, but people may want to use
314309
them and track development.
315310

316-
Greg Kroah-Hartman currently (as of 2.6.36) maintains the staging tree.
317-
Drivers that still need work are sent to him, with each driver having
318-
its own subdirectory in drivers/staging/. Along with the driver source
319-
files, a TODO file should be present in the directory as well. The TODO
320-
file lists the pending work that the driver needs for acceptance into
321-
the kernel proper, as well as a list of people that should be Cc'd for any
322-
patches to the driver. Staging drivers that don't currently build should
323-
have their config entries depend upon CONFIG_BROKEN. Once they can
324-
be successfully built without outside patches, CONFIG_BROKEN can be removed.
311+
Greg Kroah-Hartman currently maintains the staging tree. Drivers that
312+
still need work are sent to him, with each driver having its own
313+
subdirectory in drivers/staging/. Along with the driver source files, a
314+
TODO file should be present in the directory as well. The TODO file lists
315+
the pending work that the driver needs for acceptance into the kernel
316+
proper, as well as a list of people that should be Cc'd for any patches to
317+
the driver. Current rules require that drivers contributed to staging
318+
must, at a minimum, compile properly.
319+
320+
Staging can be a relatively easy way to get new drivers into the mainline
321+
where, with luck, they will come to the attention of other developers and
322+
improve quickly. Entry into staging is not the end of the story, though;
323+
code in staging which is not seeing regular progress will eventually be
324+
removed. Distributors also tend to be relatively reluctant to enable
325+
staging drivers. So staging is, at best, a stop on the way toward becoming
326+
a proper mainline driver.
327+
325328

326329
2.5: TOOLS
327330

@@ -347,11 +350,7 @@ page at:
347350

348351
http://git-scm.com/
349352

350-
That page has pointers to documentation and tutorials. One should be
351-
aware, in particular, of the Kernel Hacker's Guide to git, which has
352-
information specific to kernel development:
353-
354-
http://linux.yyz.us/git-howto.html
353+
That page has pointers to documentation and tutorials.
355354

356355
Among the kernel developers who do not use git, the most popular choice is
357356
almost certainly Mercurial:
@@ -408,7 +407,7 @@ There are a few hints which can help with linux-kernel survival:
408407
important to filter on both the topic of interest (though note that
409408
long-running conversations can drift away from the original subject
410409
without changing the email subject line) and the people who are
411-
participating.
410+
participating.
412411

413412
- Do not feed the trolls. If somebody is trying to stir up an angry
414413
response, ignore them.

0 commit comments

Comments
 (0)