Messages in this thread | | | Subject | Re: PATCH killing dead code and design errors in pre6 | From | Andi Kleen <> | Date | 13 Jan 1999 16:39:27 +0100 |
| |
In article <369CC886.E9431AC9@cs.net.pl>, Marcin Dalecki <dalecki@cs.net.pl> writes:
> If you had really readed through the patch you should see why the only > usage > of it in skbuff was bogous due to the fact that the results of the > implyed > constructor call (omitted due to reusal or not) gets just overwritten by > the > copy operation just shortly after it. Did you spot the memcpy(new_skb, > orig_skb) ?
That is only in skb_clone, not in alloc_skb.
> This is an generic example of case where the logic behind the implyed > constructors > is just getting into way: CLONING OF OBJECTS.
You might not have noticed it, but most skbs are allocated, not cloned. It is especially important for the fast routing path, which is totally memory bound (when several 100Mbit/s busmastering ethernet cards are active the CPU cache isn't of much use anymore because it is invalidated so often). The improvements on forwarding performance was the main reason why the slab skb patch was added.
Also: in the middle of 2.1 there was a nice fork time optimization (it got unfortunately thrown out again by the half-finished changes for bigger NR_OPEN support, but I plan to resubmit them for 2.3). With clever use of the constructor it is possible to avoid the copying of the files array on forking for most cases.
-Andi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |