[Top] [All Lists]

Re: [PATCH 4/4] Staging: Octeon: Free transmit SKBs in a timely manner.

To: David Daney <>
Subject: Re: [PATCH 4/4] Staging: Octeon: Free transmit SKBs in a timely manner.
From: Eric Dumazet <>
Date: Mon, 15 Feb 2010 21:27:53 +0100
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:received:received:subject:from:to:cc :in-reply-to:references:content-type:date:message-id:mime-version :x-mailer:content-transfer-encoding; bh=9TmwcbiFEptboJxWGBqb3xk7p0x8bqiLkREGORZG/yU=; b=PeY4XH2BZpMDN8gvs6aFUFIGE9zp+DK6xsWIX+GYrXKFkME/Zb0T1qg01J/eoiK0Tp 1MwF7wf4NSUFaUGhsUyVHMG2v3X9S8Y4mtT251Og02mBZ6ubIqCDPsN4slESzmmUJoHY vN8lNmirjswQYzSZjg3/HHb50eO2C1ErLK/so=
Domainkey-signature: a=rsa-sha1; c=nofws;; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; b=tKr231hEVLTUN3L7xBntxZc4wfghZkJZ1MvlE6lgM7lvlgHdTSK8nKegPIlvWp+Djx 2sIqkjksIW//5CBge3vnTyMo3z3x+XxBYJMdx2WoZoTZIHdaWy2JFmGuKt3PcNhYNdfL GXVLa8HpP18EQxs4K6Xwi0Krfc7TRtRYcC7vo=
In-reply-to: <>
Original-recipient: rfc822;
References: <> <>
Le lundi 15 février 2010 à 12:13 -0800, David Daney a écrit :
> If we wait for the once-per-second cleanup to free transmit SKBs,
> sockets with small transmit buffer sizes might spend most of their
> time blocked waiting for the cleanup.
> Normally we do a cleanup for each transmitted packet.  We add a
> watchdog type timer so that we also schedule a timeout for 150uS after
> a packet is transmitted.  The watchdog is reset for each transmitted
> packet, so for high packet rates, it never expires.  At these high
> rates, the cleanups are done for each packet so the extra watchdog
> initiated cleanups are not needed.


Hmm, but re-arming a timer for each transmited packet must have a cost ?

> Signed-off-by: David Daney <>

Is there any particular reason periodic is spelled preiodic ?

> ---
>  }
> -static void cvm_oct_tx_clean_worker(struct work_struct *work)
> +static void cvm_oct_preiodic_worker(struct work_struct *work)
>  {

> -                     INIT_DELAYED_WORK(&priv->tx_clean_work,
> -                                       cvm_oct_tx_clean_worker);
> -
> +                     INIT_DELAYED_WORK(&priv->port_periodic_work,
> +                                       cvm_oct_preiodic_worker);

<Prev in Thread] Current Thread [Next in Thread>