On 2019-08-03, Tom Smyth <tom.sm...@wirelessconnect.eu> wrote:
> Hello all,
>
> I was wondering as a user, what sort of testing and feedback
> can I give to driver developers that would be useful /helpful
> in improving driver functionality and performance in OpenBSD.
>
> Im particularly interested in OpenBSD Network performance.
> what tools / tests provide useful feedback to developers
> so that it would make it a (little) easier for them to improve
> the drivers (if and when it is necessary).
>
> an example problem is where a driver running on OpenBSD
> is not performing as fast as  a driver which is developed on
> another OS which might have used non public / open-source information
> in initializing / setting up the hardware.

You can't easily look at a driver in isolation, the network performance
you see involves various parts of the network stack common to all drivers.
Quite a few of the network drivers are rather similar on several OS,
but performance can differ hugely due to other aspects of the system.

> as far as I know  I need to provide developers
> output of dmesg command,
> debug output in the event of a crash (sendbug)
>
> compare performance under identical hardware conditions with different
> Operating systems  eg using iperf3 / tcpbench

(btw iperf3 is not a particularly good benchmark; on a fast network it
often ends up measuring the speed of fetching time from the clock as
much as anything else.. iperf 2.x or tcpbench usually give more useful
results. Also note if it's forwarding performance you're interested in,
make sure you measure the right thing - run the packet generators/sinks
on other fast machines routing or bridging through the machine under test,
don't run them on the machine under test itself).

> Is it useful to collect the output of pcidump -xxx
> and compare the output
> with the equivalent pci config space dump  in other operating systems
>  eg lspci -vv -xxxx in linux...
> ?

I think that's not likely to be particularly useful unless debugging a
particular problem.

> Is it useful for devs to have users to collect and diff this data  and
> present it
> to devs,
>
> are there other tools / methodologies that would help users help driver
> developers
>
> Im  interested in testing and helping improve  network drivers such as as
> im using
> some of these interfaces in production (or want to run them in production)
>
> em
> ix
> vio
> ixl
> iavf
> tap
> vlan
> egre
> eoip
> etherip
> vxlan
>
>
> Thanks for your time and suggestions
>
> Tom Smyth
>

Probably the thing that will help most is to keep an eye out for requests
of testing of all sorts of diffs, test them and report back. Obviously
anything related to drivers you use, but also diffs that say things like
"unlock XX" or mention words like KERNEL_LOCK, NET_LOCK, mp-safe, etc.
are all often on the path to increasing performance.

Take a look at what Hrvoje Popovski has been doing in the way of testing
(just look over the tech@ list archives, you'll find many examples), he
has put in a lot of effort and the tests he's been doing are really useful.


Reply via email to