From e3b7df65e089f143b9228472b80fb96c495fb634 Mon Sep 17 00:00:00 2001
From: "ecashin@coraid.com" <ecashin@coraid.com>
Date: Mon, 18 Apr 2005 22:00:21 -0700
Subject: [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>
---
 Documentation/aoe/todo.txt | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
 create mode 100644 Documentation/aoe/todo.txt

(limited to 'Documentation')

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 @@
+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.
-- 
cgit