[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220315222220.2925324-1-anthony.l.nguyen@intel.com>
Date: Tue, 15 Mar 2022 15:22:06 -0700
From: Tony Nguyen <anthony.l.nguyen@...el.com>
To: davem@...emloft.net, kuba@...nel.org, pabeni@...hat.com
Cc: Tony Nguyen <anthony.l.nguyen@...el.com>, netdev@...r.kernel.org,
jacob.e.keller@...el.com
Subject: [PATCH net-next 00/14][pull request] 100GbE Intel Wired LAN Driver Updates 2022-03-15
Jacob Keller says:
The ice_sriov.c file now houses almost all of the virtualization code in the
ice driver. This includes both Single Root specific implementation as well
as generic functionality such as the virtchnl interface.
We are planning to implement support for Scalable IOV in the ice driver in
the future. This implementation will want to use the generic functionality
in ice_sriov.c
Rather than dump the Scalable IOV code into ice_sriov.c, we will want to
implement it in a separate file, ice_siov.c
To help with this, refactor the code in ice_sriov.c and split the generic
functionality out into separate files.
Reorganize code to make the non-implementation specific bits into new files
with the following general guidelines:
* ice_vf_lib.[ch]
Basic VF structures and accessors. This is where scheme-independent
code will reside.
* ice_virtchnl.[ch]
Virtchnl message handling. This is where the bulk of the logic for
processing messages from VFs using the virtchnl messaging scheme will
reside. This is separated from ice_vf_lib.c because it is somewhat
distinct and stand alone.
* ice_sriov.[ch]
Single Root IOV implementation, including initialization and the
routines for interacting with SR-IOV based netdev operations.
* (future) ice_siov.[ch]
Scalable IOV implementation.
The end goal is to make it easier to re-use the generic parts of the
virtualization logic while keeping separate the concerns of the Single Root
implementation.
In addition to the pure code moves, this series has a reset refactor which
clean up the functionality to make it easier to reuse the reset code. A new
ops table is introduced to make the VF reset logic more generic. The Single
Root specific details are implemented in ice_sriov.c. A future series
implementing Scalable IOV support will use this ops table to allow re-use of
the reset logic which is now in ice_vf_lib.c
The following are changes since commit c84d86a0295c24487db5b7db1a61d9c0eddfbb66:
Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
Jacob Keller (14):
ice: introduce ice_vf_lib.c, ice_vf_lib.h, and ice_vf_lib_private.h
ice: fix incorrect dev_dbg print mistaking 'i' for vf->vf_id
ice: introduce VF operations structure for reset flows
ice: fix a long line warning in ice_reset_vf
ice: move reset functionality into ice_vf_lib.c
ice: drop is_vflr parameter from ice_reset_all_vfs
ice: make ice_reset_all_vfs void
ice: convert ice_reset_vf to standard error codes
ice: convert ice_reset_vf to take flags
ice: introduce ICE_VF_RESET_NOTIFY flag
ice: introduce ICE_VF_RESET_LOCK flag
ice: cleanup long lines in ice_sriov.c
ice: introduce ice_virtchnl.c and ice_virtchnl.h
ice: remove PF pointer from ice_check_vf_init
drivers/net/ethernet/intel/ice/Makefile | 4 +-
drivers/net/ethernet/intel/ice/ice_main.c | 8 +-
drivers/net/ethernet/intel/ice/ice_sriov.c | 5718 +-----------
drivers/net/ethernet/intel/ice/ice_sriov.h | 273 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 1029 +++
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 290 +
.../ethernet/intel/ice/ice_vf_lib_private.h | 40 +
.../intel/ice/{ice_sriov.c => ice_virtchnl.c} | 8170 ++++++-----------
drivers/net/ethernet/intel/ice/ice_virtchnl.h | 82 +
.../ethernet/intel/ice/ice_virtchnl_fdir.c | 1 +
.../ethernet/intel/ice/ice_virtchnl_fdir.h | 1 +
11 files changed, 4598 insertions(+), 11018 deletions(-)
create mode 100644 drivers/net/ethernet/intel/ice/ice_vf_lib.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_vf_lib.h
create mode 100644 drivers/net/ethernet/intel/ice/ice_vf_lib_private.h
copy drivers/net/ethernet/intel/ice/{ice_sriov.c => ice_virtchnl.c} (58%)
create mode 100644 drivers/net/ethernet/intel/ice/ice_virtchnl.h
--
2.31.1
Powered by blists - more mailing lists