mbox series

[net-next,0/9] Add support of VF Reset to HNS3 VF driver

Message ID 20180322142900.22860-1-salil.mehta@huawei.com
Headers show
Series Add support of VF Reset to HNS3 VF driver | expand

Message

Salil Mehta March 22, 2018, 2:28 p.m. UTC
This patch-set adds the support of VF reset to the existing VF driver.
VF Reset can be triggered due to TX watchdog firing  as a result of TX
data-path not working. VF reset could also be a result of some internal
configuration changes if that requires reset, or as a result of the
PF/Core/Global/IMP(Integrated Management Processor) reset happened in
the PF. 

Summary of Patches:
* Watchdog timer trigger chnages are present in Patch 1.
* Reset Service Task and related Event handling is present in Patches {2,3}
* Changes to send reset request to PF, reset stack and re-initialization
  of the hclge device is present in Patches {4,5,6}
* Changes related to ARQ (Asynchronous Receive Queue) and its event handling
  are present in Patches {7,8}
* Changes required in PF to handle the VF Reset request and actually perform
  hardware VF reset is there in Patch 9.


NOTE: This patch depends upon "[PATCH net-next 00/11] fix some bugs for HNS3 driver"
	Link: https://lkml.org/lkml/2018/3/21/72

Salil Mehta (9):
  net: hns3: Changes to make enet watchdog timeout func common for PF/VF
  net: hns3: Add VF Reset Service Task to support event handling
  net: hns3: Add VF Reset device state and its handling
  net: hns3: Add support to request VF Reset to PF
  net: hns3: Add support to reset the enet/ring mgmt layer
  net: hns3: Add support to re-initialize the hclge device
  net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
  net: hns3: Add *Asserting Reset* mailbox message & handling in VF
  net: hns3: Changes required in PF mailbox to support VF reset

 drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |  16 +
 drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   8 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    |  30 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   2 -
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |  38 +--
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |   1 +
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  42 +++
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   6 +
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  | 336 +++++++++++++++++++--
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |  31 ++
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  95 +++++-
 11 files changed, 534 insertions(+), 71 deletions(-)

Comments

David Miller March 22, 2018, 7:34 p.m. UTC | #1
From: Salil Mehta <salil.mehta@huawei.com>
Date: Thu, 22 Mar 2018 14:28:51 +0000

> This patch-set adds the support of VF reset to the existing VF driver.
> VF Reset can be triggered due to TX watchdog firing  as a result of TX
> data-path not working. VF reset could also be a result of some internal
> configuration changes if that requires reset, or as a result of the
> PF/Core/Global/IMP(Integrated Management Processor) reset happened in
> the PF. 
> 
> Summary of Patches:
> * Watchdog timer trigger chnages are present in Patch 1.
> * Reset Service Task and related Event handling is present in Patches {2,3}
> * Changes to send reset request to PF, reset stack and re-initialization
>   of the hclge device is present in Patches {4,5,6}
> * Changes related to ARQ (Asynchronous Receive Queue) and its event handling
>   are present in Patches {7,8}
> * Changes required in PF to handle the VF Reset request and actually perform
>   hardware VF reset is there in Patch 9.
> 
> 
> NOTE: This patch depends upon "[PATCH net-next 00/11] fix some bugs for HNS3 driver"
> 	Link: https://lkml.org/lkml/2018/3/21/72

Series applied, thank you.

Please audit your usage of the various reset state bits.

In most places you do the correct atomic sequence by making use of
test_and_set_bit() and test_and_clear_bit().

But in some cases you do things like:

	if (!test_bit(X) && !test_bit(Y)) {
	...
		set_bit(Y);
	}

which is racy.