Page MenuHomeFreeBSD

NTB Perf: Tool to measure performance of NTB hw drivers
Needs ReviewPublic

Authored by shreyankamartya229_gmail.com on Jan 13 2019, 10:19 AM.

Details

Reviewers
mav
cem
Group Reviewers
Core Team
Summary

NTB Perf is a performance measuring tool for NTB hardware drivers.

This is a port of ntb_perf Linux tool for FreeBSD. It has been tested with AMD NTB hardware driver.

Test Plan

A guide to test is included in ntb_perf.c comments.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

Added write combining for memory window for improved performance
Remove submit_test_callout with an alternate method to check test completion
Add sysctl node under debug tree for NTB Perf

@mav : Reminder to please review this change when you get a chance. Thanks.

@mav, @cem, @imp : Please review this change and provide feedback. Thanks.

@mav @cem @imp : Can anyone please review this change. Thanks.

cem added a subscriber: emaste.Apr 25 2019, 3:11 PM

I'm afraid I don't have time to review this, sorry. CCing Ed, who might be able to round someone up.

@emaste: Reminder to find a reviewer for this change please. Thanks.

Can you provide a link to the original source file, and make a second review (or link to a diff) that shows the delta between upstream and your ported version?

@emaste : Here's a link to the linux ntb_perf tool which I've used for porting: ntb_perf
Did you mean a delta between linux upstream and my ported version? If yes, find it here D20697
If this is not what you requested, please let me know.

@emaste : Reminder to review/find a reviewer for this change, please.

@emaste @mav : Reminder to review this change, please.

mav added a comment.EditedAug 15 2019, 1:59 AM

Have you tried to run this code on debug kernel? On fresh head with INVARIANTS, WITNESS, etc. it complains and crashes immediately on attempt to sleep under mutex in many places (sysctl, memory allocations, etc).

mav added a comment.Aug 15 2019, 5:22 PM

The code also seems to not build on i386. I haven't looked close, but when I tried to build other thing, it failed.