Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 143351
b: refs/heads/master
c: 7fa5d20
h: refs/heads/master
i:
  143349: 37a4211
  143347: 080c2b0
  143343: 0b2023a
v: v3
  • Loading branch information
Steven Whitehouse committed Apr 15, 2009
1 parent f99cda9 commit faef0de
Show file tree
Hide file tree
Showing 54 changed files with 687 additions and 958 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: 23da64b4714812b66ecf010e7dfb3ed1bf2eda69
refs/heads/master: 7fa5d20d1a5e60ef7e453993b67b26c87dc09f07
19 changes: 13 additions & 6 deletions trunk/Documentation/block/biodoc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1040,21 +1040,23 @@ Front merges are handled by the binary trees in AS and deadline schedulers.
iii. Plugging the queue to batch requests in anticipation of opportunities for
merge/sort optimizations

This is just the same as in 2.4 so far, though per-device unplugging
support is anticipated for 2.5. Also with a priority-based i/o scheduler,
such decisions could be based on request priorities.

Plugging is an approach that the current i/o scheduling algorithm resorts to so
that it collects up enough requests in the queue to be able to take
advantage of the sorting/merging logic in the elevator. If the
queue is empty when a request comes in, then it plugs the request queue
(sort of like plugging the bath tub of a vessel to get fluid to build up)
(sort of like plugging the bottom of a vessel to get fluid to build up)
till it fills up with a few more requests, before starting to service
the requests. This provides an opportunity to merge/sort the requests before
passing them down to the device. There are various conditions when the queue is
unplugged (to open up the flow again), either through a scheduled task or
could be on demand. For example wait_on_buffer sets the unplugging going
through sync_buffer() running blk_run_address_space(mapping). Or the caller
can do it explicity through blk_unplug(bdev). So in the read case,
the queue gets explicitly unplugged as part of waiting for completion on that
buffer. For page driven IO, the address space ->sync_page() takes care of
doing the blk_run_address_space().
(by running tq_disk) so the read gets satisfied soon. So in the read case,
the queue gets explicitly unplugged as part of waiting for completion,
in fact all queues get unplugged as a side-effect.

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

Per-queue granularity unplugging (still a Todo) may help reduce some of the
concerns with just a single tq_disk flush approach. Something like
blk_kick_queue() to unplug a specific queue (right away ?)
or optionally, all queues, is in the plan.

4.4 I/O contexts
I/O contexts provide a dynamically allocated per process data area. They may
be used in I/O schedulers, and in the block layer (could be used for IO statis,
Expand Down
46 changes: 15 additions & 31 deletions trunk/Documentation/powerpc/dts-bindings/fsl/i2c.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,26 @@ Required properties :

Recommended properties :

- compatible : compatibility list with 2 entries, the first should
be "fsl,CHIP-i2c" where CHIP is the name of a compatible processor,
e.g. mpc8313, mpc8543, mpc8544, mpc5200 or mpc5200b. The second one
should be "fsl-i2c".
- compatible : Should be "fsl-i2c" for parts compatible with
Freescale I2C specifications.
- interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
information for the interrupt. This should be encoded based on
the information in section 2) depending on the type of interrupt
controller you have.
- interrupt-parent : the phandle for the interrupt controller that
services interrupts for this device.
- fsl,preserve-clocking : boolean; if defined, the clock settings
from the bootloader are preserved (not touched).
- clock-frequency : desired I2C bus clock frequency in Hz.

Examples :

i2c@3d00 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
cell-index = <0>;
reg = <0x3d00 0x40>;
interrupts = <2 15 0>;
interrupt-parent = <&mpc5200_pic>;
fsl,preserve-clocking;
- dfsrr : boolean; if defined, indicates that this I2C device has
a digital filter sampling rate register
- fsl5200-clocking : boolean; if defined, indicated that this device
uses the FSL 5200 clocking mechanism.

Example :
i2c@3000 {
interrupt-parent = <40000>;
interrupts = <1b 3>;
reg = <3000 18>;
device_type = "i2c";
compatible = "fsl-i2c";
dfsrr;
};

i2c@3100 {
#address-cells = <1>;
#size-cells = <0>;
cell-index = <1>;
compatible = "fsl,mpc8544-i2c", "fsl-i2c";
reg = <0x3100 0x100>;
interrupts = <43 2>;
interrupt-parent = <&mpic>;
clock-frequency = <400000>;
};

2 changes: 1 addition & 1 deletion trunk/arch/powerpc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ config PPC_64K_PAGES

config PPC_256K_PAGES
bool "256k page size" if 44x
depends on !STDBINUTILS
depends on !STDBINUTILS && (!SHMEM || BROKEN)
help
Make the page size 256k.

Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/boot/dts/tqm8540.dts
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@
interrupt-parent = <&mpic>;
dfsrr;

dtt@48 {
dtt@50 {
compatible = "national,lm75";
reg = <0x48>;
reg = <0x50>;
};

rtc@68 {
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/boot/dts/tqm8541.dts
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@
interrupt-parent = <&mpic>;
dfsrr;

dtt@48 {
dtt@50 {
compatible = "national,lm75";
reg = <0x48>;
reg = <0x50>;
};

rtc@68 {
Expand Down
8 changes: 4 additions & 4 deletions trunk/arch/powerpc/boot/dts/tqm8548-bigflash.dts
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@
interrupt-parent = <&mpic>;
dfsrr;

dtt@48 {
dtt@50 {
compatible = "national,lm75";
reg = <0x48>;
reg = <0x50>;
};

rtc@68 {
Expand Down Expand Up @@ -247,7 +247,7 @@
interrupts = <31 2 32 2 33 2>;
interrupt-parent = <&mpic>;
tbi-handle = <&tbi2>;
phy-handle = <&phy4>;
phy-handle = <&phy3>;

mdio@520 {
#address-cells = <1>;
Expand Down Expand Up @@ -275,7 +275,7 @@
interrupts = <37 2 38 2 39 2>;
interrupt-parent = <&mpic>;
tbi-handle = <&tbi3>;
phy-handle = <&phy5>;
phy-handle = <&phy4>;

mdio@520 {
#address-cells = <1>;
Expand Down
8 changes: 4 additions & 4 deletions trunk/arch/powerpc/boot/dts/tqm8548.dts
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@
interrupt-parent = <&mpic>;
dfsrr;

dtt@48 {
dtt@50 {
compatible = "national,lm75";
reg = <0x48>;
reg = <0x50>;
};

rtc@68 {
Expand Down Expand Up @@ -247,7 +247,7 @@
interrupts = <31 2 32 2 33 2>;
interrupt-parent = <&mpic>;
tbi-handle = <&tbi2>;
phy-handle = <&phy4>;
phy-handle = <&phy3>;

mdio@520 {
#address-cells = <1>;
Expand Down Expand Up @@ -275,7 +275,7 @@
interrupts = <37 2 38 2 39 2>;
interrupt-parent = <&mpic>;
tbi-handle = <&tbi3>;
phy-handle = <&phy5>;
phy-handle = <&phy4>;

mdio@520 {
#address-cells = <1>;
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/boot/dts/tqm8555.dts
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@
interrupt-parent = <&mpic>;
dfsrr;

dtt@48 {
dtt@50 {
compatible = "national,lm75";
reg = <0x48>;
reg = <0x50>;
};

rtc@68 {
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/boot/dts/tqm8560.dts
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@
interrupt-parent = <&mpic>;
dfsrr;

dtt@48 {
dtt@50 {
compatible = "national,lm75";
reg = <0x48>;
reg = <0x50>;
};

rtc@68 {
Expand Down
Loading

0 comments on commit faef0de

Please sign in to comment.