| ecashin@coraid.com | e3b7df6 | 2005-04-18 22:00:21 -0700 | [diff] [blame] | 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, | 
| Matt LaPlante | fff9289 | 2006-10-03 22:47:42 +0200 | [diff] [blame] | 10 | the destructor member of the struct sk_buff is available to the aoe | 
| ecashin@coraid.com | e3b7df6 | 2005-04-18 22:00:21 -0700 | [diff] [blame] | 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. |