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
prev parent 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