]>
Commit | Line | Data |
---|---|---|
e3b7df65 EC |
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, | |
fff9289b | 10 | the destructor member of the struct sk_buff is available to the aoe |
e3b7df65 EC |
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. |