From: Serge Semin
> The multi-port NTB API was introduced in kernel 4.13 as well as the
> first driver for the true multi-port devices of IDT PCIe-switches
> series. But the test drivers still were left almost unchanged. Yes,
> they didn't fail being used with new NTB API, but they only worked
> with two-ports NTB devices. This patchset is intended to fix the
> issue, by amending the NTB test drivers and script so they would be
> fully compatible with multi-port NTB API.
> 
> Additionally I found a few NTB subsystem issues while developing the
> submitted patches. So they are also fixed in this patchset

Thanks for bringing the multiport support to the ntb tools and tests, and 
getting it all tested with help of @pallam.  I wondered about setting the dma 
mask on the ntb device object, and it is better now that you have done that.  
In addition to the contact information to the file comments, MODULE_AUTHOR can 
also be specified more than once per module.

As Logan said, some of the renaming was not really necessary and made those 
patches more noisy than the needed to be.  I am not as much bothered by it, but 
it is a valid criticism.

I can't find an earlier comment I thought I had made regarding the changes in 
ntb_tool.  Maybe it was only on IRC.  I think the use of the anonymous unions 
tool_mw is confusing.  It seems to require the reader to first understand how 
local and peer mw setup works, and then see that the anonymous unions are 
accessed by the proper member names depending on the situation.  In my review, 
the use of those members appears to be correct in your code.  Since these 
drivers are also intended to be example code, I would have preferred distinct 
types instead of a common type with anonymous union members.  Distinct types 
would make type checking by the compiler more effective at catching improper 
use, and I think it would make the code more clear in its use as an example ntb 
driver.  Also, there might be some confusion in the naming of members "mw", 
since it might refer to a tool_mw or a tool_mw_wrap, and the name alone doesn't 
disclose the type, that requires reading and understanding the surrounding 
context in the code.

I am satisfied with these patches.  This is important for getting the multiport 
support established, and other than some comments about style and presentation 
of the patch set, nothing looks obviously wrong.  You should probably also seek 
Dave's ack on at least ntb_perf.

Acked-by: Allen Hubbe <[email protected]>

> Serge Semin (15):
>   NTB: Rename NTB messaging API methods
>   NTB: Set dma mask and dma coherent mask to NTB devices
>   NTB: Fix UB/bug in ntb_mw_get_align()
>   NTB: ntb_pp: Add full multi-port NTB API support
>   NTB: ntb_tool: Add full multi-port NTB API support
>   NTB: ntb_perf: Add full multi-port NTB API support
>   NTB: ntb_test: Safely use paths with whitespace
>   NTB: ntb_test: Add ntb_tool port tests
>   NTB: ntb_test: Update ntb_tool link tests
>   NTB: ntb_test: Update ntb_tool DB tests
>   NTB: ntb_test: Update ntb_tool Scratchpad tests
>   NTB: ntb_test: Add ntb_tool Message tests
>   NTB: ntb_test: Update ntb_tool MW tests
>   NTB: ntb_test: Update ntb_perf tests
>   NTB: ntb_hw_idt: Set NTB_TOPO_SWITCH topology
> 
>  drivers/ntb/hw/amd/ntb_hw_amd.c         |    4 +
>  drivers/ntb/hw/idt/ntb_hw_idt.c         |   37 +-
>  drivers/ntb/hw/intel/ntb_hw_intel.c     |    4 +
>  drivers/ntb/ntb.c                       |    1 -
>  drivers/ntb/test/ntb_perf.c             | 1826 
> +++++++++++++++++++++----------
>  drivers/ntb/test/ntb_pingpong.c         |  450 +++++---
>  drivers/ntb/test/ntb_tool.c             | 1805 ++++++++++++++++++++----------
>  include/linux/ntb.h                     |   36 +-
>  tools/testing/selftests/ntb/ntb_test.sh |  307 ++++--
>  9 files changed, 3013 insertions(+), 1457 deletions(-)
> 
> --
> 2.12.0

Reply via email to