]> git.baikalelectronics.ru Git - kernel.git/commit
enic: add devcmd2
authorGovindarajulu Varadarajan <_govind@gmx.com>
Sat, 15 Aug 2015 20:14:54 +0000 (01:44 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Aug 2015 22:25:29 +0000 (15:25 -0700)
commit7d64a971cf0d53daba002f59c5b76095ff67eed6
treeb0da4fd30b4dde4e505b3e84339d24a0a85d683f
parent42a5d08b4f053a9a677bad5a24f8b17c70208ba3
enic: add devcmd2

devcmd is an interface for driver to communicate with fw/adaptor. It
involves writing data to hardware registers and waiting for the result.
This mechanism does not scale well. The queuing of "no wait" devcmds is
done in firmware memory rather than on the host. Firmware memory is a
rather more scarce and valuable resource than host memory. A devcmd storm
from one vf can disrupt the service on other pf/vf. The lack of flow
control allows for possible denial of server from one VM to another.

Devcmd2 uses work queue to post the devcmds, just like tx work queue. This
allows better flow control.

Initialize devcmd2, if fails we fall back to devcmd1.

Also change the driver version.

Signed-off-by: N V V Satyanarayana Reddy <nalreddy@cisco.com>
Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cisco/enic/enic.h
drivers/net/ethernet/cisco/enic/enic_main.c
drivers/net/ethernet/cisco/enic/vnic_dev.c
drivers/net/ethernet/cisco/enic/vnic_dev.h
drivers/net/ethernet/cisco/enic/vnic_devcmd.h
drivers/net/ethernet/cisco/enic/vnic_wq.c
drivers/net/ethernet/cisco/enic/vnic_wq.h