Subject: Re: [PATCH] tcpdump may trace some outbound packets twice.

From: Patrick McHardy <[email-masked]>
Date: Tue, 16 May 2006 02:21:27 +0200

David S. Miller wrote:
> From: Stephen Hemminger <[email-masked]>
> Date: Mon, 15 May 2006 16:41:01 -0700
> 
> 
>>kfree_skb(NULL) is legal so the conditional here is unneeded.
>>
>>But the increased calls to kfree_skb(NULL) would probably bring the
>>"unlikely()" hordes descending on kfree_skb, so maybe:
> 
> 
> And unfortunately as Patrick McHardy states, we can't use
> this trick here because things like tc actions can do stuff
> like pskb_expand_head() which cannot handle shared SKBs.
> 
> We need another solution to this problem, because cloning an
> extra SKB is just rediculious overhead so isn't something we
> can seriously consider to solve this problem.
> 
> Another option is to say this anomaly doesn't matter enough
> to justify the complexity we're looking at here just to fix
> this glitch.
> 
> Other implementation possibility suggestions welcome :-)

We could just mark the skb to make sure its only passed to taps
on the first transmission attempt. Since we have the timestamp
optimization there shouldn't be any visible change besides
the desired effect.