Based on kernel version 3.9. Page generated on 2013-05-02 22:54 EST.
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 destructor 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.