Re: [RFC][PATCH 0/4] VM deadlock prevention -v4
From: Indan Zupancic <hidden>
Date: 2006-08-12 20:06:06
Also in:
linux-mm, lkml
On Sat, August 12, 2006 20:54, Peter Zijlstra said:
- single allocation group per packet - that is, when I free a packet and all its associated object I get my memory back.
This is easy.
- not waste too much space managing the various objects
This too, when ignoring clones and COW.
skb operations want to allocate various sk_buffs for the same data clones. Also, it wants to be able to break the COW or realloc the data.
So this seems to be what adds all the complexity.
So I tried manual packing (parts of that you have seen in previous attempts). This gets hard when you want to do unlimited clones and COW breaks. To do either you need to go link several pages.
It gets messy quite quickly, yes.
So needing a list of pages and wanting packing gave me SROG. The biggest wart is having to deal with higher order pages. Explicitly coding in knowledge of the object you're packing just makes the code bigger - such is the power of abstraction.
I assume you meant "Not explicitly coding in", or else I'm tempted to disagree. Abstraction that has only one user which uses it in one way only adds bloat. But looking at the code a bit more I'm afraid you're right. Greetings, Indan