Thread (33 messages) 33 messages, 6 authors, 2016-12-04

Re: Regression: [PATCH] mlx4: give precise rx/tx bytes/packets counters

From: Saeed Mahameed <hidden>
Date: 2016-12-01 15:38:43

On Wed, Nov 30, 2016 at 11:00 PM, Eric Dumazet [off-list ref] wrote:
On Wed, 2016-11-30 at 22:42 +0200, Saeed Mahameed wrote:
quoted
On Wed, Nov 30, 2016 at 7:35 PM, Eric Dumazet [off-list ref] wrote:
quoted
On Wed, 2016-11-30 at 18:46 +0200, Saeed Mahameed wrote:
quoted
we had/still have the proper stats they are the ones that
mlx4_en_fold_software_stats is trying to cache into  (they always
exist),
but the ones that you are trying to read from (the mlx4 rings) are gone !

This bug is totally new and as i warned, this is another symptom of
the real root cause (can't sleep while reading stats).

Eric what do you suggest ? Keep pre-allocated MAX_RINGS stats  and
always iterate over all of them to query stats ?
what if you have one ring/none/1K ? how would you know how many to query ?
I am suggesting I will fix the bug I introduced.

Do not panic.
Not at all, I trust you are the only one who is capable of providing
the best solution.
I am just trying to read your mind :-).

As i said i like the solution and i want to adapt it to mlx5, so I am
a little bit enthusiastic :)
What about the following fix guys ?

As a bonus we update the stats right before they are sent to monitors
via rtnetlink ;)
Hi Eric, Thanks for the patch, I already acked it.

I have one educational question (not related to this patch, but
related to stats reading in general).
I was wondering why do we need to disable bh every time we read stats
"spin_lock_bh" ? is it essential ?

I checked and in mlx4 we don't hold stats_lock in softirq
(en_rx.c/en_tx.c), so I don't see any deadlock risk in here..

 Thanks
Saeed.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help