From: ecashin@coraid.com Date: Tue, 19 Apr 2005 05:00:21 +0000 (-0700) Subject: [PATCH] aoe 9/12: add note about the need for deadlock-free sk_buff allocation X-Git-Tag: v2.6.12-rc3~24^2~2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3b7df65e089f143b9228472b80fb96c495fb634;p=linux-2.6 [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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/Documentation/aoe/todo.txt b/Documentation/aoe/todo.txt new file mode 100644 index 0000000000..7fee1e1165 --- /dev/null +++ b/Documentation/aoe/todo.txt @@ -0,0 +1,14 @@ +There is a potential for deadlock when allocating a struct sk_buff for +data that needs to be written out to aoe storage. If the data is +being written from a dirty page in order to free that page, and if +there are no other pages available, then deadlock may occur when a +free page is needed for the sk_buff allocation. This situation has +not been observed, but it would be nice to eliminate any potential for +deadlock under memory pressure. + +Because ATA over Ethernet is not fragmented by the kernel's IP code, +the destructore member of the struct sk_buff is available to the aoe +driver. By using a mempool for allocating all but the first few +sk_buffs, and by registering a destructor, we should be able to +efficiently allocate sk_buffs without introducing any potential for +deadlock.