diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/aoe/mkdevs.sh | 1 | ||||
-rw-r--r-- | Documentation/aoe/mkshelf.sh | 1 | ||||
-rw-r--r-- | Documentation/aoe/todo.txt | 14 | ||||
-rw-r--r-- | Documentation/aoe/udev-install.sh | 6 |
4 files changed, 21 insertions, 1 deletions
diff --git a/Documentation/aoe/mkdevs.sh b/Documentation/aoe/mkdevs.sh index 6ce70703eb47..ec5a6de1cd7b 100644 --- a/Documentation/aoe/mkdevs.sh +++ b/Documentation/aoe/mkdevs.sh | |||
@@ -5,6 +5,7 @@ n_partitions=${n_partitions:-16} | |||
5 | 5 | ||
6 | if test "$#" != "1"; then | 6 | if test "$#" != "1"; then |
7 | echo "Usage: sh `basename $0` {dir}" 1>&2 | 7 | echo "Usage: sh `basename $0` {dir}" 1>&2 |
8 | echo " n_partitions=16 sh `basename $0` {dir}" 1>&2 | ||
8 | exit 1 | 9 | exit 1 |
9 | fi | 10 | fi |
10 | dir=$1 | 11 | dir=$1 |
diff --git a/Documentation/aoe/mkshelf.sh b/Documentation/aoe/mkshelf.sh index 40932836bb80..8bacf9f2c7cc 100644 --- a/Documentation/aoe/mkshelf.sh +++ b/Documentation/aoe/mkshelf.sh | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | if test "$#" != "2"; then | 3 | if test "$#" != "2"; then |
4 | echo "Usage: sh `basename $0` {dir} {shelfaddress}" 1>&2 | 4 | echo "Usage: sh `basename $0` {dir} {shelfaddress}" 1>&2 |
5 | echo " n_partitions=16 sh `basename $0` {dir} {shelfaddress}" 1>&2 | ||
5 | exit 1 | 6 | exit 1 |
6 | fi | 7 | fi |
7 | n_partitions=${n_partitions:-16} | 8 | n_partitions=${n_partitions:-16} |
diff --git a/Documentation/aoe/todo.txt b/Documentation/aoe/todo.txt new file mode 100644 index 000000000000..7fee1e1165bc --- /dev/null +++ b/Documentation/aoe/todo.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | There is a potential for deadlock when allocating a struct sk_buff for | ||
2 | data that needs to be written out to aoe storage. If the data is | ||
3 | being written from a dirty page in order to free that page, and if | ||
4 | there are no other pages available, then deadlock may occur when a | ||
5 | free page is needed for the sk_buff allocation. This situation has | ||
6 | not been observed, but it would be nice to eliminate any potential for | ||
7 | deadlock under memory pressure. | ||
8 | |||
9 | Because ATA over Ethernet is not fragmented by the kernel's IP code, | ||
10 | the destructore member of the struct sk_buff is available to the aoe | ||
11 | driver. By using a mempool for allocating all but the first few | ||
12 | sk_buffs, and by registering a destructor, we should be able to | ||
13 | efficiently allocate sk_buffs without introducing any potential for | ||
14 | deadlock. | ||
diff --git a/Documentation/aoe/udev-install.sh b/Documentation/aoe/udev-install.sh index 861a27f98771..6449911c6a71 100644 --- a/Documentation/aoe/udev-install.sh +++ b/Documentation/aoe/udev-install.sh | |||
@@ -23,4 +23,8 @@ fi | |||
23 | # /etc/udev/rules.d | 23 | # /etc/udev/rules.d |
24 | # | 24 | # |
25 | rules_d="`sed -n '/^udev_rules=/{ s!udev_rules=!!; s!\"!!g; p; }' $conf`" | 25 | rules_d="`sed -n '/^udev_rules=/{ s!udev_rules=!!; s!\"!!g; p; }' $conf`" |
26 | test "$rules_d" && sh -xc "cp `dirname $0`/udev.txt $rules_d/60-aoe.rules" | 26 | if test -z "$rules_d" || test ! -d "$rules_d"; then |
27 | echo "$me Error: cannot find udev rules directory" 1>&2 | ||
28 | exit 1 | ||
29 | fi | ||
30 | sh -xc "cp `dirname $0`/udev.txt $rules_d/60-aoe.rules" | ||