Hi Eric
Erik Nordmark wrote:
> Francesco DiMambro wrote:
>> <div class="moz-text-flowed" style="font-family: -moz-fixed">Hi Darren
>> That would be UDP LSO right? Solaris 10 update 4 has
>> LSO for TCP, but not UDP. The key point I want to make here
>> is the adapter I'm working with has LSO for TCP also, the UDP
>> part it doesn't, yet, but no big deal because neither does Solaris.
>> I implemented MDT and it works for UDP and TCP and in a side
>> by side comparison of LSO v MDT, for TCP on the same card
>> MDT wins.
>> I want to get the Max performance for my adapter and Solaris
>> and presently MDT is proving the best way to do it. Having come
>> to this conclusion I thought I should share it with the alias, because
>> I need it to be maintained in Solaris, I was not expecting to hear
>> it was being EOL'd that's just premature.
>
> Frank,
>
> why did you choose MDT over LSO?
When I started the development, there was no LSO on Solaris 10, so I put MDT
into the driver, I got distracted with Windows driver development for 3
years. Then
when I returned to Solaris LSO had became available so I added LSO as well.
> Did you need to run on Solaris releases that doesn't support LSO but
> supports MDT?
We're aiming to support Solaris 8, 9 and 10 and following activity on
Solaris11,
sparc and x86.
> Or did you benchmark MDT and LSO and found that MDT was more efficient?
I benchmarked MDT v LSO and MDT was better on our card but I attribute
that to limited hardware capability, if the hardware can go up to 1M LSO
them
I'd expect LSO to overtake MDT, we're not there yet hence the need for MDT.
In the case of UDP there's no LSO in Solaris so the benchmark was against
plain old one packet at a time model. With that MDT was twice as fast, but
was limited by the receiver which couldn't deal with the volume of packets.
(Working on that next.)
> There is a fair bit (understatement) of complexity on the MDT
> implementation and that is why I'd like to understand the above.
The complexity in the driver is equal to the complexity of the one packet at
a time model. The difference is familiarity, in other words most people can
write a one packet at a time Tx, and layer on top of that LSO, no
brainer ;-).
But MDT is a new data structure so needs a different way to Tx, once you
know how to do that then you can handle the complexity. It's just like what
M$ did in the transition from NDIS_PACKET to NBL/NB's, everyone who
knew how to write a NDIS_PACKET tx had to re-learn how to do it
for NBL/NB's. I'm not asking you go that far, but just leave the option to
allow MDT, with it's ability to send more than one packet to the driver in
one call.
thanks
Frank
>
> Thanks,
> Erik
_______________________________________________
networking-discuss mailing list
[email protected]