From: Nishanth Aravamudan <nacc@us.ibm.com>
To: robert.olsson@its.uu.se
Cc: netdev@oss.sgi.com, kernel-janitors@lists.osdl.org
Subject: [KJ] [PATCH 5/20] net/pktgen: remove interruptible_sleep_on_timeout() usage
Date: Wed, 2 Feb 2005 10:58:23 -0800 [thread overview]
Message-ID: <20050202185823.GG2546@us.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2763 bytes --]
Hello,
The first and last replacements in the following patch were slightly confusing
to me, as I have not used wait-queues that much myself. I did not exactly
understand how a locally defined wait-queue could be slept on, especially since
there are no wake_up() calls in pktgen.c. I was tempted to make the first sleep
a msleep_interruptible(100), but decided to patch for the same code before I did
that.
Description: Replace deprecated interruptible_sleep_on_timeout() with direct
wait-queue usage or wait_event_interruptible_timeout() as appropriate.
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
--- 2.6.11-rc2-kj-v/net/core/pktgen.c 2005-01-24 09:34:21.000000000 -0800
+++ 2.6.11-rc2-kj/net/core/pktgen.c 2005-02-02 10:57:02.000000000 -0800
@@ -135,6 +135,7 @@
#include <linux/ipv6.h>
#include <linux/udp.h>
#include <linux/proc_fs.h>
+#include <linux/wait.h>
#include <net/checksum.h>
#include <net/ipv6.h>
#include <net/addrconf.h>
@@ -2409,16 +2410,18 @@ static int running(struct pktgen_thread
static int pktgen_wait_thread_run(struct pktgen_thread *t )
{
- wait_queue_head_t queue;
-
- init_waitqueue_head(&queue);
-
+ DEFINE_WAIT(wait);
+ wait_queue_head_t queue;
+ init_waitqueue_head(&queue);
+
if_lock(t);
while(running(t)) {
if_unlock(t);
-
- interruptible_sleep_on_timeout(&queue, HZ/10);
+
+ prepare_to_wait(&queue, &wait, TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ/10);
+ finish_wait(&queue, &wait);
if (signal_pending(current))
goto signal;
if_lock(t);
@@ -2738,6 +2741,7 @@ __inline__ void pktgen_xmit(struct pktge
static void pktgen_thread_worker(struct pktgen_thread *t)
{
+ DEFINE_WAIT(wait);
struct pktgen_dev *pkt_dev = NULL;
int cpu = t->cpu;
sigset_t tmpsig;
@@ -2805,9 +2809,11 @@ static void pktgen_thread_worker(struct
do_softirq();
tx_since_softirq = 0;
}
+ } else {
+ prepare_to_wait(&(t->queue), &wait, TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ/10);
+ finish_wait(&(t->queue), &wait);
}
- else
- interruptible_sleep_on_timeout(&(t->queue), HZ/10);
/*
* Back from sleep, either due to the timeout or signal.
@@ -3118,8 +3124,7 @@ static void __exit pg_cleanup(void)
struct pktgen_thread *t = pktgen_threads;
pktgen_threads->control |= (T_TERMINATE);
- while( t == pktgen_threads)
- interruptible_sleep_on_timeout(&queue, HZ);
+ wait_event_interruptible_timeout(queue, (t != pktgen_threads), HZ);
}
/* Un-register us from receiving netdevice events */
[-- Attachment #2: Type: text/plain, Size: 167 bytes --]
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors
next reply other threads:[~2005-02-02 18:58 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-02 18:58 Nishanth Aravamudan [this message]
2005-02-03 15:24 ` [PATCH 5/20] net/pktgen: remove interruptible_sleep_on_timeout() usage Robert Olsson
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=20050202185823.GG2546@us.ibm.com \
--to=nacc@us.ibm.com \
--cc=kernel-janitors@lists.osdl.org \
--cc=netdev@oss.sgi.com \
--cc=robert.olsson@its.uu.se \
/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;
as well as URLs for NNTP newsgroup(s).