On Tue, Mar 22, 2011 at 23:57, pradeepkumar soman <pradeep2481@xxxxxxxxx> wrote: > Hello, > I have a doubt related to a network relay device. Looking at my skill level, I am probably not a right person to answer this. So pardon me if I cc: this e-mail to the kernelnewbies list... hopefully it gets better answer here... > I am having a relay device which will clone the skb and route the cloned > packet to another interface (it is doing packet interception) during the > packet transmission. I am not really sure on what "a relay device" means here.... do you mean something like dummy device (kinda "lo") and anything send to it will be "copied" to another ethernet device like what we do with "iptables" using "redirect" target? > But I am getting the error "Dead loop on netdevice relay" frequently on high > data transfer. "Frequently" or always? what's the percentage? >This error is coming from net/sched/sched_generic.c, whenever > the > hard_xmit function is recursive. But the hard_xmit function is called with > bh and kernel preemption disabled. So what is the reason for this scenario > to occur? Let's step back a bit: how do you send the data anyway? it might be due to send it using hard_xmit or anything like that...then intercept it right after it is received by the "device" and send to another one.... so you send, intercept, send again likely in the same context or code path.... got what I meant? you probably just need to put the data in the right skb queue and trigger the net_tx something ( forgot the name), thus it each are done by different workqueue context.... -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies