blob: c09dfad4aed8f95be03a5088cdb7f824c8f3f774 [file] [log] [blame]
ecashin@coraid.come3b7df62005-04-18 22:00:21 -07001There is a potential for deadlock when allocating a struct sk_buff for
2data that needs to be written out to aoe storage. If the data is
3being written from a dirty page in order to free that page, and if
4there are no other pages available, then deadlock may occur when a
5free page is needed for the sk_buff allocation. This situation has
6not been observed, but it would be nice to eliminate any potential for
7deadlock under memory pressure.
8
9Because ATA over Ethernet is not fragmented by the kernel's IP code,
Matt LaPlantefff92892006-10-03 22:47:42 +020010the destructor member of the struct sk_buff is available to the aoe
ecashin@coraid.come3b7df62005-04-18 22:00:21 -070011driver. By using a mempool for allocating all but the first few
12sk_buffs, and by registering a destructor, we should be able to
13efficiently allocate sk_buffs without introducing any potential for
14deadlock.