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