Re: [PATCH v5 00/10] NTB Selftest Script

From: Jon Mason
Date: Sun Jun 26 2016 - 19:29:30 EST


On Mon, Jun 20, 2016 at 01:15:03PM -0600, Logan Gunthorpe wrote:
> Sorry, I thought this was done but I found one more minor issue with
> these patches so I'm resubmitting them one last time. Besides this isuse,
> I think I have acks for all the patches and everything is working as I'd
> like.

Applying patch 05/10 to my ntb branch (as it is a bug fix and should
go into 4.7)

Applying the rest to my ntb-next branch (which should go into 4.8)

Note: I'm including patch 09/10 in my tree, even though it is for the
selftest subsystem. Given that Shuah Khan acked it, I assume this is
the desired outcome.

Thanks,
Jon

>
> Changes since v4:
>
> 1) In patch 0006, when setting a translation fails in tool_setup_mw,
> we now properly clean up the peer dma memory. Before that patch, it
> wasn't required because if tool_setup_mw failed the module would clean
> up all mws. After this patch, the clean up never happened, so it would
> return an error to the user but the DMA memory would still be allocated
> and the peer_trans file would report that it's ready but the debugfs
> file would not have been created. In v5, after an error, no DMA memory
> is allocated and it will still report that it's not ready to the user when
> reading peer_trans.
>
> ---
>
> Changes since v3:
>
> 1) Check the error returned when setting the link in ntb_tool and pass
> it back to the user.
>
> 2) If an error occurs when setting the link down during a link test in
> ntb_test, just print unsupported and continue on. (For hardware that
> does not support setting the link down.)
>
> 3) Fix a race condition problem introduced by clearing the link is
> up flag in ntb_perf. We do this by getting rid of the link cleanup
> work and doing the few actions in the link event handler.
> Dave Jiang has already ok'd this approach.
>
> ---
>
> Changes since v2:
>
> 1) As per Allan's suggestion, I've added a patch to postpone the
> peer memory window setup until the user requests it with a 'peer_trans*'
> file. This pushes the ntb_tool API closer to the kernel API and allows
> the link status file to return the raw status of the NTB link.
>
> 2) Change the link status file to return the value of ntb_link_is_up
> instead of the local 'memory window ready' value.
>
> 3) Change the link_event file to just block on write. As it was in v2,
> if multiple users attempted to use the link_event file they could
> corrupt the state another user had set. Reads to this file are no
> longer permitted.
>
> 4) Updates to the ntb_test script to accommodate the above changes.
>
> 5) Added some link tests to the ntb_test script. It will bring the link
> down and check that the other side agrees.
>
> 6) Added a minor bug fix (Patch #10) to ntb_perf. During discussions
> with Allen it was noticed that the link_is_up flag is never cleared if
> the link goes away.
>
> ---
>
> Changes since v1:
>
> 1) Add a comment to explain the *15 in the buf size calculation,
> as per Allen's feedback.
>
> 2) Clean up the changes to the pingpong client as there were some
> sloppy copying mistakes.
>
> 3) Rework the 'link' file in ntb_tool as per Allen's suggestions.
> I've added a 'link_event' file the works essentially how he's asked.
> Though, I found no need to use a completion as suggested and the flow
> is maybe slightly simpler than he's suggested. Just write a boolean
> to the event file then read to wait for the link to be either up or
> down. There's still some discussion on the best interface and it's
> not much work to make additional minor functional changes.
>
> 4) Update the selftest script to use the new 'link_event' file.
>
> 5) Minor change to the way the selftest script lists devices thanks to
> Allen's observation.
>
> ---
>
> I've written a ntb_test.sh script that would probably be useful if it
> were included in the kernel. This series ends with that script and
> includes some useful interface improvements and fixes to the existing ntb
> test modules. Please see each individual commit for more information.
> They are mostly independent.
>
> The series is based off of v4.6 plus the patches I've submitted that
> have been accepted into ntb-next. They've been run through checkpatch
> with --strict this time.
>
> As always, I'm happy to incorporate any feedback.
>
> Thanks,
>
> Logan
>
> ---
>
> Logan Gunthorpe (10):
> ntb_perf: Schedule based on time not on performance
> ntb_perf: Improve thread handling to increase robustness
> ntb_perf: Return results by reading the run file
> ntb_perf: Wait for link before running test
> ntb_tool: BUG: Ensure the buffer size is large enough to return all
> spads
> ntb_tool: Postpone memory window initialization for the user
> ntb_tool: Add link status and files to debugfs
> ntb_pingpong: Add a debugfs file to get the ping count
> ntb_test: Add a selftest script for the NTB subsystem
> ntb_perf: clear link_is_up flag when the link goes down.
>
> MAINTAINERS | 1 +
> drivers/ntb/test/ntb_perf.c | 224 +++++++++------
> drivers/ntb/test/ntb_pingpong.c | 62 ++++-
> drivers/ntb/test/ntb_tool.c | 468 ++++++++++++++++++++++----------
> tools/testing/selftests/ntb/ntb_test.sh | 422 ++++++++++++++++++++++++++++
> 5 files changed, 957 insertions(+), 220 deletions(-)
> create mode 100755 tools/testing/selftests/ntb/ntb_test.sh
>
> --
> 2.1.4