diff options
author | ecashin@coraid.com <ecashin@coraid.com> | 2005-04-19 01:00:21 -0400 |
---|---|---|
committer | Greg KH <greg@press.kroah.org> | 2005-04-19 01:00:21 -0400 |
commit | e3b7df65e089f143b9228472b80fb96c495fb634 (patch) | |
tree | a2366a9a09aaa9063b3b4e41eab747fc0c8b29a5 | |
parent | d098840e37468fdd0143d8bcfe86bc53627bf96e (diff) |
[PATCH] aoe 9/12: add note about the need for deadlock-free sk_buff allocation
add note about the need for deadlock-free sk_buff allocation
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | Documentation/aoe/todo.txt | 14 |
1 files changed, 14 insertions, 0 deletions
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. | ||