Re: Driver patch to look at...

2013-02-06 Thread Randall Stewart
Good idea… I will commit this late today.. just in case there are any trailing comments ;-) R On Feb 5, 2013, at 3:52 PM, John Baldwin wrote: > On Tuesday, February 05, 2013 2:30:36 pm Randall Stewart wrote: >> Ok >> >> Here it is one last time (I hope) with the updates ;-) > > One more sugge

Re: Driver patch to look at...

2013-02-05 Thread Jack Vogel
Thanks for being the critical eye John :) And I appreciate the work Randall, thanks! Jack On Tue, Feb 5, 2013 at 12:52 PM, John Baldwin wrote: > On Tuesday, February 05, 2013 2:30:36 pm Randall Stewart wrote: > > Ok > > > > Here it is one last time (I hope) with the updates ;-) > > One more su

Re: Driver patch to look at...

2013-02-05 Thread John Baldwin
On Tuesday, February 05, 2013 2:30:36 pm Randall Stewart wrote: > Ok > > Here it is one last time (I hope) with the updates ;-) One more suggestion. I would make the check in buf_ring_putback_sc() a KASSERT() so that in the production case we don't pay for a branch that should never occur. --

Re: Driver patch to look at...

2013-02-05 Thread Randall Stewart
Ok Here it is one last time (I hope) with the updates ;-) R Index: dev/e1000/if_em.c === --- dev/e1000/if_em.c (revision 246357) +++ dev/e1000/if_em.c (working copy) @@ -905,22 +905,24 @@ em_mq_start_locked(struct ifnet *ifp, st

Re: Driver patch to look at...

2013-02-05 Thread John Baldwin
On Tuesday, February 05, 2013 2:08:15 pm Randall Stewart wrote: > Hmm > > wait, I could probably do the compare to whats in the ring buffer ;-D I wouldn't bother. The compare and branch is probably more expensive than the store. > R > On Feb 5, 2013, at 2:04 PM, Randall Stewart wrote: > > > Hm

Re: Driver patch to look at...

2013-02-05 Thread John Baldwin
On Tuesday, February 05, 2013 2:04:12 pm Randall Stewart wrote: > Hmm > > That would trade off a stack pointer + a compare > vs always doing the move. Right, the store is probably cheaper than the branch. :) However, minimizing the duplicated code in drivers and having this interface be as clea

Re: Driver patch to look at...

2013-02-05 Thread Randall Stewart
Hmm wait, I could probably do the compare to whats in the ring buffer ;-D R On Feb 5, 2013, at 2:04 PM, Randall Stewart wrote: > Hmm > > That would trade off a stack pointer + a compare > vs always doing the move. > > Thats fine until I have to add the _mc() version, then the put > back would

Re: Driver patch to look at...

2013-02-05 Thread Randall Stewart
Hmm That would trade off a stack pointer + a compare vs always doing the move. Thats fine until I have to add the _mc() version, then the put back would be an atomic, and most of the time the return from this is probably not changed… I really would prefer not to since the compare and maybe store

Re: Driver patch to look at...

2013-02-05 Thread John Baldwin
On Tuesday, February 05, 2013 12:44:01 pm Randall Stewart wrote: > Actually, no it is used. > > If you look in if_var.h int he drbr_putback() function, it does > a buf_ring_swap when the old mbuf pointer does not equal the > new mbuf pointer. This *does* happen, I crashed at least once > yesterday

Re: Driver patch to look at...

2013-02-05 Thread John Baldwin
On Tuesday, February 05, 2013 12:44:01 pm Randall Stewart wrote: > Actually, no it is used. > > If you look in if_var.h int he drbr_putback() function, it does > a buf_ring_swap when the old mbuf pointer does not equal the > new mbuf pointer. This *does* happen, I crashed at least once > yesterday

Re: Driver patch to look at...

2013-02-05 Thread Randall Stewart
Actually, no it is used. If you look in if_var.h int he drbr_putback() function, it does a buf_ring_swap when the old mbuf pointer does not equal the new mbuf pointer. This *does* happen, I crashed at least once yesterday when the igb driver did something to free the original mbuf and return a new

Re: Driver patch to look at...

2013-02-05 Thread John Baldwin
On Tuesday, February 05, 2013 10:24:24 am Randall Stewart wrote: > Here is an updated patch… sigh.. I foobar'd the ALTQ stuff.. lots of crashes ;-D Heh, I like this better, thanks. I think you can remove buf_ring_swap() as it is no longer used? -- John Baldwin

Re: Driver patch to look at...

2013-02-05 Thread Randall Stewart
Here is an updated patch… sigh.. I foobar'd the ALTQ stuff.. lots of crashes ;-D R Index: dev/e1000/if_em.c === --- dev/e1000/if_em.c (revision 246357) +++ dev/e1000/if_em.c (working copy) @@ -894,7 +894,7 @@ static int em_mq_s

Re: Driver patch to look at...

2013-02-05 Thread Randall Stewart
John: Here is an updated patch, per your suggestions. Note that I also expanded and the only driver that uses these methods I did not touch is the cxgb, but thats because I am not really sure it has the problem… it does not quite enqueue the same way (it appears) that the other drivers do ;-) R

Re: Driver patch to look at...

2013-02-05 Thread Randy Stewart
On Feb 4, 2013, at 3:24 PM, John Baldwin wrote: > On Monday, February 04, 2013 12:22:49 pm Randy Stewart wrote: >> All: >> >> I have been working with TCP in gigabit networks (igb driver actually) and >> have >> found a very nasty problem with the way the driver is doing its put back when >> it

Re: Driver patch to look at...

2013-02-04 Thread John Baldwin
On Monday, February 04, 2013 12:22:49 pm Randy Stewart wrote: > All: > > I have been working with TCP in gigabit networks (igb driver actually) and > have > found a very nasty problem with the way the driver is doing its put back when > it fills the out-bound transmit queue. > > Basically it has

Re: Driver patch to look at...

2013-02-04 Thread Randy Stewart
I am beating the heck out of it on my 9.x testbed where I lifted it from. I don't have any ix or ixgbe cards to play with yet though.. R On Feb 4, 2013, at 1:11 PM, Jack Vogel wrote: > > > On Mon, Feb 4, 2013 at 9:22 AM, Randy Stewart wrote: > All: > > I have been working with TCP in gigabit

Re: Driver patch to look at...

2013-02-04 Thread Jack Vogel
On Mon, Feb 4, 2013 at 9:22 AM, Randy Stewart wrote: > All: > > I have been working with TCP in gigabit networks (igb driver actually) and > have > found a very nasty problem with the way the driver is doing its put back > when > it fills the out-bound transmit queue. > > Basically it has taken a

Driver patch to look at...

2013-02-04 Thread Randy Stewart
All: I have been working with TCP in gigabit networks (igb driver actually) and have found a very nasty problem with the way the driver is doing its put back when it fills the out-bound transmit queue. Basically it has taken a packet from the head of the ring buffer, and then realizes it can't f