Skip to content

Commit bb803cf

Browse files
committed
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/scsi/fcoe/fcoe.c
2 parents 3878fb6 + 511e11e commit bb803cf

File tree

1,787 files changed

+38426
-34527
lines changed

Some content is hidden

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

1,787 files changed

+38426
-34527
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ include/linux/compile.h
4949
include/linux/version.h
5050
include/linux/utsrelease.h
5151
include/linux/bounds.h
52+
include/generated
5253

5354
# stgit generated dirs
5455
patches-*

Documentation/ABI/testing/debugfs-pktcdvd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
What: /debug/pktcdvd/pktcdvd[0-7]
1+
What: /sys/kernel/debug/pktcdvd/pktcdvd[0-7]
22
Date: Oct. 2006
33
KernelVersion: 2.6.20
44
Contact: Thomas Maier <[email protected]>
@@ -10,10 +10,10 @@ debugfs interface
1010
The pktcdvd module (packet writing driver) creates
1111
these files in debugfs:
1212

13-
/debug/pktcdvd/pktcdvd[0-7]/
13+
/sys/kernel/debug/pktcdvd/pktcdvd[0-7]/
1414
info (0444) Lots of driver statistics and infos.
1515

1616
Example:
1717
-------
1818

19-
cat /debug/pktcdvd/pktcdvd0/info
19+
cat /sys/kernel/debug/pktcdvd/pktcdvd0/info

Documentation/ABI/testing/sysfs-firmware-acpi

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,13 @@ Description:
6969
gpe1F: 0 invalid
7070
gpe_all: 1192
7171
sci: 1194
72+
sci_not: 0
7273

73-
sci - The total number of times the ACPI SCI
74-
has claimed an interrupt.
74+
sci - The number of times the ACPI SCI
75+
has been called and claimed an interrupt.
76+
77+
sci_not - The number of times the ACPI SCI
78+
has been called and NOT claimed an interrupt.
7579

7680
gpe_all - count of SCI caused by GPEs.
7781

Documentation/DocBook/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ quiet_cmd_db2pdf = PDF $@
143143
$(call cmd,db2pdf)
144144

145145

146-
main_idx = Documentation/DocBook/index.html
146+
index = index.html
147+
main_idx = Documentation/DocBook/$(index)
147148
build_main_index = rm -rf $(main_idx) && \
148149
echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \
149150
echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \
@@ -232,7 +233,7 @@ clean-files := $(DOCBOOKS) \
232233
$(patsubst %.xml, %.pdf, $(DOCBOOKS)) \
233234
$(patsubst %.xml, %.html, $(DOCBOOKS)) \
234235
$(patsubst %.xml, %.9, $(DOCBOOKS)) \
235-
$(C-procfs-example)
236+
$(C-procfs-example) $(index)
236237

237238
clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
238239

Documentation/DocBook/kernel-api.tmpl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,16 +190,20 @@ X!Ekernel/module.c
190190
!Edrivers/pci/pci.c
191191
!Edrivers/pci/pci-driver.c
192192
!Edrivers/pci/remove.c
193-
!Edrivers/pci/pci-acpi.c
194193
!Edrivers/pci/search.c
195194
!Edrivers/pci/msi.c
196195
!Edrivers/pci/bus.c
196+
!Edrivers/pci/access.c
197+
!Edrivers/pci/irq.c
198+
!Edrivers/pci/htirq.c
197199
<!-- FIXME: Removed for now since no structured comments in source
198200
X!Edrivers/pci/hotplug.c
199201
-->
200202
!Edrivers/pci/probe.c
203+
!Edrivers/pci/slot.c
201204
!Edrivers/pci/rom.c
202205
!Edrivers/pci/iov.c
206+
!Idrivers/pci/pci-sysfs.c
203207
</sect1>
204208
<sect1><title>PCI Hotplug Support Library</title>
205209
!Edrivers/pci/hotplug/pci_hotplug_core.c

Documentation/DocBook/kgdb.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@
281281
seriously wrong while debugging, it will most often be the case
282282
that you want to enable gdb to be verbose about its target
283283
communications. You do this prior to issuing the <constant>target
284-
remote</constant> command by typing in: <constant>set remote debug 1</constant>
284+
remote</constant> command by typing in: <constant>set debug remote 1</constant>
285285
</para>
286286
</chapter>
287287
<chapter id="KGDBTestSuite">

Documentation/block/biodoc.txt

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,23 +1040,21 @@ Front merges are handled by the binary trees in AS and deadline schedulers.
10401040
iii. Plugging the queue to batch requests in anticipation of opportunities for
10411041
merge/sort optimizations
10421042

1043-
This is just the same as in 2.4 so far, though per-device unplugging
1044-
support is anticipated for 2.5. Also with a priority-based i/o scheduler,
1045-
such decisions could be based on request priorities.
1046-
10471043
Plugging is an approach that the current i/o scheduling algorithm resorts to so
10481044
that it collects up enough requests in the queue to be able to take
10491045
advantage of the sorting/merging logic in the elevator. If the
10501046
queue is empty when a request comes in, then it plugs the request queue
1051-
(sort of like plugging the bottom of a vessel to get fluid to build up)
1047+
(sort of like plugging the bath tub of a vessel to get fluid to build up)
10521048
till it fills up with a few more requests, before starting to service
10531049
the requests. This provides an opportunity to merge/sort the requests before
10541050
passing them down to the device. There are various conditions when the queue is
10551051
unplugged (to open up the flow again), either through a scheduled task or
10561052
could be on demand. For example wait_on_buffer sets the unplugging going
1057-
(by running tq_disk) so the read gets satisfied soon. So in the read case,
1058-
the queue gets explicitly unplugged as part of waiting for completion,
1059-
in fact all queues get unplugged as a side-effect.
1053+
through sync_buffer() running blk_run_address_space(mapping). Or the caller
1054+
can do it explicity through blk_unplug(bdev). So in the read case,
1055+
the queue gets explicitly unplugged as part of waiting for completion on that
1056+
buffer. For page driven IO, the address space ->sync_page() takes care of
1057+
doing the blk_run_address_space().
10601058

10611059
Aside:
10621060
This is kind of controversial territory, as it's not clear if plugging is
@@ -1067,11 +1065,6 @@ Aside:
10671065
multi-page bios being queued in one shot, we may not need to wait to merge
10681066
a big request from the broken up pieces coming by.
10691067

1070-
Per-queue granularity unplugging (still a Todo) may help reduce some of the
1071-
concerns with just a single tq_disk flush approach. Something like
1072-
blk_kick_queue() to unplug a specific queue (right away ?)
1073-
or optionally, all queues, is in the plan.
1074-
10751068
4.4 I/O contexts
10761069
I/O contexts provide a dynamically allocated per process data area. They may
10771070
be used in I/O schedulers, and in the block layer (could be used for IO statis,

Documentation/cgroups/memory.txt

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@ used here with the memory controller that is used in hardware.
66

77
Salient features
88

9-
a. Enable control of both RSS (mapped) and Page Cache (unmapped) pages
9+
a. Enable control of Anonymous, Page Cache (mapped and unmapped) and
10+
Swap Cache memory pages.
1011
b. The infrastructure allows easy addition of other types of memory to control
1112
c. Provides *zero overhead* for non memory controller users
1213
d. Provides a double LRU: global memory pressure causes reclaim from the
1314
global LRU; a cgroup on hitting a limit, reclaims from the per
1415
cgroup LRU
1516

16-
NOTE: Swap Cache (unmapped) is not accounted now.
17-
1817
Benefits and Purpose of the memory controller
1918

2019
The memory controller isolates the memory behaviour of a group of tasks
@@ -290,34 +289,44 @@ will be charged as a new owner of it.
290289
moved to the parent. If you want to avoid that, force_empty will be useful.
291290

292291
5.2 stat file
293-
memory.stat file includes following statistics (now)
294-
cache - # of pages from page-cache and shmem.
295-
rss - # of pages from anonymous memory.
296-
pgpgin - # of event of charging
297-
pgpgout - # of event of uncharging
298-
active_anon - # of pages on active lru of anon, shmem.
299-
inactive_anon - # of pages on active lru of anon, shmem
300-
active_file - # of pages on active lru of file-cache
301-
inactive_file - # of pages on inactive lru of file cache
302-
unevictable - # of pages cannot be reclaimed.(mlocked etc)
303-
304-
Below is depend on CONFIG_DEBUG_VM.
305-
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
306-
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
307-
recent_rotated_file - VM internal parameter. (see mm/vmscan.c)
308-
recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
309-
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
310-
311-
Memo:
292+
293+
memory.stat file includes following statistics
294+
295+
cache - # of bytes of page cache memory.
296+
rss - # of bytes of anonymous and swap cache memory.
297+
pgpgin - # of pages paged in (equivalent to # of charging events).
298+
pgpgout - # of pages paged out (equivalent to # of uncharging events).
299+
active_anon - # of bytes of anonymous and swap cache memory on active
300+
lru list.
301+
inactive_anon - # of bytes of anonymous memory and swap cache memory on
302+
inactive lru list.
303+
active_file - # of bytes of file-backed memory on active lru list.
304+
inactive_file - # of bytes of file-backed memory on inactive lru list.
305+
unevictable - # of bytes of memory that cannot be reclaimed (mlocked etc).
306+
307+
The following additional stats are dependent on CONFIG_DEBUG_VM.
308+
309+
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
310+
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
311+
recent_rotated_file - VM internal parameter. (see mm/vmscan.c)
312+
recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
313+
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
314+
315+
Memo:
312316
recent_rotated means recent frequency of lru rotation.
313317
recent_scanned means recent # of scans to lru.
314318
showing for better debug please see the code for meanings.
315319

320+
Note:
321+
Only anonymous and swap cache memory is listed as part of 'rss' stat.
322+
This should not be confused with the true 'resident set size' or the
323+
amount of physical memory used by the cgroup. Per-cgroup rss
324+
accounting is not done yet.
316325

317326
5.3 swappiness
318327
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
319328

320-
Following cgroup's swapiness can't be changed.
329+
Following cgroups' swapiness can't be changed.
321330
- root cgroup (uses /proc/sys/vm/swappiness).
322331
- a cgroup which uses hierarchy and it has child cgroup.
323332
- a cgroup which uses hierarchy and not the root of hierarchy.

Documentation/cgroups/resource_counter.txt

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,18 @@ to work with it.
4747

4848
2. Basic accounting routines
4949

50-
a. void res_counter_init(struct res_counter *rc)
50+
a. void res_counter_init(struct res_counter *rc,
51+
struct res_counter *rc_parent)
5152

5253
Initializes the resource counter. As usual, should be the first
5354
routine called for a new counter.
5455

55-
b. int res_counter_charge[_locked]
56-
(struct res_counter *rc, unsigned long val)
56+
The struct res_counter *parent can be used to define a hierarchical
57+
child -> parent relationship directly in the res_counter structure,
58+
NULL can be used to define no relationship.
59+
60+
c. int res_counter_charge(struct res_counter *rc, unsigned long val,
61+
struct res_counter **limit_fail_at)
5762

5863
When a resource is about to be allocated it has to be accounted
5964
with the appropriate resource counter (controller should determine
@@ -67,15 +72,25 @@ to work with it.
6772
* if the charging is performed first, then it should be uncharged
6873
on error path (if the one is called).
6974

70-
c. void res_counter_uncharge[_locked]
75+
If the charging fails and a hierarchical dependency exists, the
76+
limit_fail_at parameter is set to the particular res_counter element
77+
where the charging failed.
78+
79+
d. int res_counter_charge_locked
80+
(struct res_counter *rc, unsigned long val)
81+
82+
The same as res_counter_charge(), but it must not acquire/release the
83+
res_counter->lock internally (it must be called with res_counter->lock
84+
held).
85+
86+
e. void res_counter_uncharge[_locked]
7187
(struct res_counter *rc, unsigned long val)
7288

7389
When a resource is released (freed) it should be de-accounted
7490
from the resource counter it was accounted to. This is called
7591
"uncharging".
7692

77-
The _locked routines imply that the res_counter->lock is taken.
78-
93+
The _locked routines imply that the res_counter->lock is taken.
7994

8095
2.1 Other accounting routines
8196

Documentation/driver-model/platform.txt

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,3 +169,62 @@ three different ways to find such a match:
169169
be probed later if another device registers. (Which is OK, since
170170
this interface is only for use with non-hotpluggable devices.)
171171

172+
173+
Early Platform Devices and Drivers
174+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175+
The early platform interfaces provide platform data to platform device
176+
drivers early on during the system boot. The code is built on top of the
177+
early_param() command line parsing and can be executed very early on.
178+
179+
Example: "earlyprintk" class early serial console in 6 steps
180+
181+
1. Registering early platform device data
182+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183+
The architecture code registers platform device data using the function
184+
early_platform_add_devices(). In the case of early serial console this
185+
should be hardware configuration for the serial port. Devices registered
186+
at this point will later on be matched against early platform drivers.
187+
188+
2. Parsing kernel command line
189+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
190+
The architecture code calls parse_early_param() to parse the kernel
191+
command line. This will execute all matching early_param() callbacks.
192+
User specified early platform devices will be registered at this point.
193+
For the early serial console case the user can specify port on the
194+
kernel command line as "earlyprintk=serial.0" where "earlyprintk" is
195+
the class string, "serial" is the name of the platfrom driver and
196+
0 is the platform device id. If the id is -1 then the dot and the
197+
id can be omitted.
198+
199+
3. Installing early platform drivers belonging to a certain class
200+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201+
The architecture code may optionally force registration of all early
202+
platform drivers belonging to a certain class using the function
203+
early_platform_driver_register_all(). User specified devices from
204+
step 2 have priority over these. This step is omitted by the serial
205+
driver example since the early serial driver code should be disabled
206+
unless the user has specified port on the kernel command line.
207+
208+
4. Early platform driver registration
209+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210+
Compiled-in platform drivers making use of early_platform_init() are
211+
automatically registered during step 2 or 3. The serial driver example
212+
should use early_platform_init("earlyprintk", &platform_driver).
213+
214+
5. Probing of early platform drivers belonging to a certain class
215+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216+
The architecture code calls early_platform_driver_probe() to match
217+
registered early platform devices associated with a certain class with
218+
registered early platform drivers. Matched devices will get probed().
219+
This step can be executed at any point during the early boot. As soon
220+
as possible may be good for the serial port case.
221+
222+
6. Inside the early platform driver probe()
223+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224+
The driver code needs to take special care during early boot, especially
225+
when it comes to memory allocation and interrupt registration. The code
226+
in the probe() function can use is_early_platform_device() to check if
227+
it is called at early platform device or at the regular platform device
228+
time. The early serial driver performs register_console() at this point.
229+
230+
For further information, see <linux/platform_device.h>.

0 commit comments

Comments
 (0)