[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <17774.39482.949953.625608@robur.slu.se>
Date: Thu, 30 Nov 2006 09:45:46 +0100
From: Robert Olsson <Robert.Olsson@...a.slu.se>
To: "Alexey Dobriyan" <adobriyan@...il.com>
Cc: "David Miller" <davem@...emloft.net>, pavol.gono@...il.com,
netdev@...r.kernel.org
Subject: Re: pktgen
Hello!
Seems you found a race when rmmod is done before it's fully started
Try:
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 733d86d..ac0b4b1 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -160,7 +160,7 @@
#include <asm/div64.h> /* do_div */
#include <asm/timex.h>
-#define VERSION "pktgen v2.68: Packet Generator for packet performance testing.\n"
+#define VERSION "pktgen v2.69: Packet Generator for packet performance testing.\n"
/* #define PG_DEBUG(a) a */
#define PG_DEBUG(a)
@@ -3673,6 +3673,8 @@ static void __exit pg_cleanup(void)
struct list_head *q, *n;
wait_queue_head_t queue;
init_waitqueue_head(&queue);
+
+ schedule_timeout_interruptible(msecs_to_jiffies(125));
/* Stop all interfaces & threads */
for i in 1 2 3 4 5 ; do modprobe pktgen ; rmmod pktgen ; done
In dmesg
pktgen v2.69: Packet Generator for packet performance testing.
pktgen v2.69: Packet Generator for packet performance testing.
pktgen v2.69: Packet Generator for packet performance testing.
pktgen v2.69: Packet Generator for packet performance testing.
pktgen v2.69: Packet Generator for packet performance testing.
Cheers.
--ro
Alexey Dobriyan writes:
> On 11/30/06, David Miller <davem@...emloft.net> wrote:
> > From: Alexey Dobriyan <adobriyan@...il.com>
> > Date: Wed, 29 Nov 2006 23:04:37 +0300
> >
> > > Looks like worker thread strategically clears it if scheduled at wrong
> > > moment.
> > >
> > > --- a/net/core/pktgen.c
> > > +++ b/net/core/pktgen.c
> > > @@ -3292,7 +3292,6 @@ static void pktgen_thread_worker(struct
> > >
> > > init_waitqueue_head(&t->queue);
> > >
> > > - t->control &= ~(T_TERMINATE);
> > > t->control &= ~(T_RUN);
> > > t->control &= ~(T_STOP);
> > > t->control &= ~(T_REMDEVALL);
> >
> > Good catch Alexey. Did you rerun the load/unload test with
> > this fix applied? If it fixes things, I'll merge it.
>
> Well, yes, it fixes things, except Ctrl+C getting you out of
> modprobe/rmmod loop will spit
> backtrace again. And other flags: T_RUN, T_STOP. Clearance is not
> needed due to kZalloc and
> create bugs as demostrated.
>
> Give me some time.
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists