The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
To: torvalds@transmeta.com, Alan Cox <alan@lxorguk.ukuu.org.uk>,
	linux-kernel@vger.kernel.org
Cc: Kernel Janitor Project  <kernel-janitor-discuss@lists.sourceforge.net>
Subject: Re: [PATCH] net/core/dev.c jiffies cleanup
Date: Mon, 5 Nov 2001 14:55:42 -0200	[thread overview]
Message-ID: <20011105145542.F1731@conectiva.com.br> (raw)
In-Reply-To: <20011103162914.A12523@lynx.no>
In-Reply-To: <20011103162914.A12523@lynx.no>

Em Sat, Nov 03, 2001 at 04:29:15PM -0700, Andreas Dilger escreveu:
> Linus, Alan,
> here is the first of the jiffies cleanups, this one of the files that
> Tim Schmielau flagged as "suspicious" users of jiffies.  Yes, I'm
> selfish, I'll only be sending patches for now for drivers/subsystems
> that I actually use.  The jiffies audit should probably become an
> item on the kernel janitor list of things to do (Arnaldo CC'd).

Sure, I'm CCing this message to the kjp mailing list so that volunteers can
work on this.
 
> Some places in the network code are hairy users of jiffies values,
> and it is not always clear that they are being used safely, but I
> can only do my best.
> 
> Where possible, I've also moved end-time calculations outside the
> loop and removed some confusing uses of "now".
> 
> Cheers, Andreas
> =========================================================================
> --- linux/net/core/dev.c.orig	Thu Oct 25 02:55:57 2001
> +++ linux/net/core/dev.c	Fri Nov  2 22:47:49 2001
> @@ -1407,7 +1407,7 @@
>  {
>  	int this_cpu = smp_processor_id();
>  	struct softnet_data *queue = &softnet_data[this_cpu];
> -	unsigned long start_time = jiffies;
> +	unsigned long end_time = jiffies + 1;
>  	int bugdet = netdev_max_backlog;
>  
>  	br_read_lock(BR_NETPROTO_LOCK);
> @@ -1504,7 +1504,7 @@
>  
>  		dev_put(rx_dev);
>  
> -		if (bugdet-- < 0 || jiffies - start_time > 1)
> +		if (bugdet-- < 0 || time_after(jiffies, end_time))
>  			goto softnet_break;
>  
>  #ifdef CONFIG_NET_HW_FLOWCONTROL
> @@ -2585,7 +2585,7 @@
>  
>  int unregister_netdevice(struct net_device *dev)
>  {
> -	unsigned long now, warning_time;
> +	unsigned long notify_time, warning_time;
>  	struct net_device *d, **dp;
>  
>  	/* If device is running, close it first. */
> @@ -2686,20 +2686,21 @@
>  
>  	 */
>  
> -	now = warning_time = jiffies;
> +	notify_time = jiffies + 1*HZ;
> +	warning_time = jiffies + 10*HZ;
>  	while (atomic_read(&dev->refcnt) != 1) {
> -		if ((jiffies - now) > 1*HZ) {
> +		if (time_after(jiffies, notify_time)) {
>  			/* Rebroadcast unregister notification */
>  			notifier_call_chain(&netdev_chain, NETDEV_UNREGISTER, dev);
>  		}
>  		current->state = TASK_INTERRUPTIBLE;
>  		schedule_timeout(HZ/4);
>  		current->state = TASK_RUNNING;
> -		if ((jiffies - warning_time) > 10*HZ) {
> -			printk(KERN_EMERG "unregister_netdevice: waiting for %s to "
> -					"become free. Usage count = %d\n",
> +		if (time_after(jiffies, warning_time)) {
> +			printk(KERN_EMERG "unregister_netdevice: waiting for %s"
> +					" to become free. Usage count = %d\n",
>  					dev->name, atomic_read(&dev->refcnt));
> -			warning_time = jiffies;
> +			warning_time = jiffies + 10*HZ;
>  		}
>  	}
>  	dev_put(dev);
> --
> Andreas Dilger

      reply	other threads:[~2001-11-05 19:38 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-03 23:29 [PATCH] net/core/dev.c jiffies cleanup Andreas Dilger
2001-11-05 16:55 ` Arnaldo Carvalho de Melo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20011105145542.F1731@conectiva.com.br \
    --to=acme@conectiva.com.br \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=kernel-janitor-discuss@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox