[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160625.120452.1848645610639208563.davem@davemloft.net>
Date: Sat, 25 Jun 2016 12:04:52 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: hariprasad@...lsio.com
Cc: netdev@...r.kernel.org, nirranjan@...lsio.com
Subject: Re: [PATCH net-next] cxgb4vf: Synchronize access to mailbox
From: Hariprasad Shenai <hariprasad@...lsio.com>
Date: Wed, 22 Jun 2016 09:39:29 +0530
> The issue comes when there are multiple threads attempting to use the
> mailbox facility at the same time. The issue is the for the Virtual
> Function Driver, the only way to get the Virtual Interface statistics
> is to issue mailbox commands to ask the firmware for the VI Stats.
> And, because the VI Stats command can only retrieve a smallish number of
> stats per mailbox command, we have to issue three mailbox commands in quick
> succession. When ethtool or netstat command to get interface stats and
> interface up/down is run in a loop for every 0.1 sec, we observed
> mailbox collisions. And out of the two commands one would fail with
> the present code, since we don't queue the second command.
>
> To overcome the above issue, added a queue to access the mailbox.
> Whenever a mailbox command is issued add it to the queue. If its at the
> head issue the mailbox command, else wait for the existing command to
> complete. Usually command takes less than a milli-second to complete.
> Also timeout from the loop, if the command under execution takes
> long time to run.
>
> In reality, the number of mailbox access collisions is going to be very
> rare since no one runs such abusive script.
>
> Signed-off-by: Hariprasad Shenai <hariprasad@...lsio.com>
Applied.
Powered by blists - more mailing lists