On Fri, 18 Apr 2025 03:24:34 +0000 Wencheng Li <liwench...@phytium.com.cn> wrote:
> v7: > - Use a legal name instead of an email alias. > - Do not use additional __rte_cold. > - Replace unsigned long with standard uint64_t. > - Describe the devargs used by the driver in the documentation. > - Update macb.ini. > > v6: > - Fixed build failures across different OS. > > v5: > - Putting __rte_unused after the declaration. > - Correct RX-bytes and TX-bytes statistics. > - Initialize the mbuf_initializer. > - Add driver based on 25.07. > - Fixed some code style issues. > > v4: > - Fix tab errors in meson.build file. > - Use RTE_LOG_LINE instead of rte_log. > - Replace %l with %PRI*64. > - Replace rte_smp_[r/w]mb with rte_[r/w]mb. > - Do not use variadic arguments in macros. > - Do not use variable-length array pkts[nb_bufs]. > - Use __rte_cache_aligned only for struct or union types alignment. > - Support hardware Rx/Tx checksum offload. > - Fixed some code style issues. > v3: > - Changed functions that always return 0 and whose return value > is unused to void type, improving code simplicity and readability. > - Fixed the implicit conversion issues in the > macb_usxgmii_pcs_check_for_link and > macb_usxgmii_pcs_check_for_link functions. > - Added the missing SPDX license tags. > - Added the missing mailmap entry. > - Updated the MAINTAINERS file to include the missing information. > > v2: > - Split the driver into three logically independent patches, > rather than one large patch. > - Added conditional compilation to address the issue of > macb_rxtx_vec_neon.c failing to compile in certain modes. > - Fixed some code style issues. > > v1: > - updated net macb driver. > > *** BLURB HERE *** This part is supposed to be removed when sending the commit message. > > Wencheng Li (3): > net/macb: add new poll mode driver > net/macb: add NEON vectorized Rx/Tx > net/macb: add necessary docs and update related files > > .mailmap | 1 + > MAINTAINERS | 6 + > doc/guides/nics/features/macb.ini | 19 + > doc/guides/nics/index.rst | 1 + > doc/guides/nics/macb.rst | 180 +++ > doc/guides/rel_notes/release_25_07.rst | 4 + > drivers/net/macb/base/generic_phy.c | 271 +++++ > drivers/net/macb/base/generic_phy.h | 202 ++++ > drivers/net/macb/base/macb_common.c | 670 ++++++++++++ > drivers/net/macb/base/macb_common.h | 253 +++++ > drivers/net/macb/base/macb_errno.h | 58 + > drivers/net/macb/base/macb_hw.h | 1138 +++++++++++++++++++ > drivers/net/macb/base/macb_type.h | 23 + > drivers/net/macb/base/macb_uio.c | 351 ++++++ > drivers/net/macb/base/macb_uio.h | 50 + > drivers/net/macb/base/meson.build | 25 + > drivers/net/macb/macb_ethdev.c | 1861 > ++++++++++++++++++++++++++++++++ > drivers/net/macb/macb_ethdev.h | 91 ++ > drivers/net/macb/macb_log.h | 19 + > drivers/net/macb/macb_rxtx.c | 1394 ++++++++++++++++++++++++ > drivers/net/macb/macb_rxtx.h | 325 ++++++ > drivers/net/macb/macb_rxtx_vec_neon.c | 675 ++++++++++++ > drivers/net/macb/meson.build | 22 + > drivers/net/meson.build | 1 + > 24 files changed, 7640 insertions(+) > create mode 100644 doc/guides/nics/features/macb.ini > create mode 100644 doc/guides/nics/macb.rst > create mode 100644 drivers/net/macb/base/generic_phy.c > create mode 100644 drivers/net/macb/base/generic_phy.h > create mode 100644 drivers/net/macb/base/macb_common.c > create mode 100644 drivers/net/macb/base/macb_common.h > create mode 100644 drivers/net/macb/base/macb_errno.h > create mode 100644 drivers/net/macb/base/macb_hw.h > create mode 100644 drivers/net/macb/base/macb_type.h > create mode 100644 drivers/net/macb/base/macb_uio.c > create mode 100644 drivers/net/macb/base/macb_uio.h > create mode 100644 drivers/net/macb/base/meson.build > create mode 100644 drivers/net/macb/macb_ethdev.c > create mode 100644 drivers/net/macb/macb_ethdev.h > create mode 100644 drivers/net/macb/macb_log.h > create mode 100644 drivers/net/macb/macb_rxtx.c > create mode 100644 drivers/net/macb/macb_rxtx.h > create mode 100644 drivers/net/macb/macb_rxtx_vec_neon.c > create mode 100644 drivers/net/macb/meson.build > Noticed that this driver is resetting the log level values. This doesn't follow pattern of other drivers. $ git grep rte_log_set_level macb/macb_ethdev.c: rte_log_set_level(macb_logtype, rte_log_get_global_level()); macb/macb_ethdev.c: rte_log_set_level(macb_logtype, RTE_LOG_NOTICE); Noticed that driver has option where it needs to link with external phy library. That should be documented more; what is the library, how to get it etc. You are using eth0, eth1, etc in the doc but not clear what relationship if any is with kernel driver. I would also leave out any non-driver specific options to test-pmd in macb.rst. These might change in the future, and are not specific to this device. The default test-pmd values for rxq, txq, rxd, txd should be good enough. Since macb requires out of tree kernel module. Where is source for kernel module, what is its license? If it is not going to be submitted to kernel as GPLv2 then this needs discussion and approval by Technical Board. Out of tree kernel modules are a real negative. It is hard to write good, safe, and correct kernel code for UIO. That is why DPDK abandoned igb_uio and kni. They were buggy, hard to support and prone to failure.