2009/235 dladm Possible Values List
Garrett D'Amore
gdamore at sun.com
Tue Apr 14 12:18:55 PDT 2009
Mike Shapiro wrote:
> On Tue, Apr 14, 2009 at 11:42:42AM -0700, Garrett D'Amore wrote:
>
>> Mike Shapiro wrote:
>>
>>
[snip!]
>>
>> What I think you're asking for, "optimal_jumbo", is really
>> "minimum_dma_overhead", and is inherently very specific to the
>> implementation -- its just one aspect of choosing the "optimum" MTU.
>> Calling it "optimum" is a misnomer that I think will lead to great
>> confusion. And, furthermore, I expect that it will lead to a greatly
>> increased number of service calls.
>>
>
> Naming aside, if you set the network at 9000 and then the driver
> at something smaller which is better, then you get the benefit.
>
Huh? Either I'm not parsing this correctly, or you're missing a critical
point.
If the rest of the network is using 9000 bytes, and your device driver
uses a smaller value, then you'll have fragmentation or other network
breakage. Fragmentation leads to poor performance. (Far worse than other
situations.) Path MTU discovery helps here, but you can't *rely* on it.
(Or at least you're not *supposed* to.)
>
>
>> Overall, this feels really like a "benchmark special" to me. If your
>> driver has some particular behavior where 9K packets take a significant
>> penalty that 8K do not, then this rightly should be treated in two ways:
>>
>> 1) as a bug -- the hardware/software should have been optimized to make
>> 9K efficient as it is the most commonly deployed frame size
>> 2) in documentation as a note in the man page.
>>
>> Both of these treatments are appropriate -- this isn't an either/or
>> situation, I think.
>>
>
> As a software guy I agree. However, (1) you don't get to control:
> that's under the control of hardware design people and subject to
> other factors. And (2), which is the entire point of why I brought
> this up, is unlikely to be seen, and prone to error or staleness.
>
But again, the "optimum" (or "preferred") value will depend on elements
that go far beyond the driver. As I said, I believe if you can drive
9000 bytes packets, then you will generally get better performance.
(Ignoring other issues like backing store to disk blocks...)
I don't think its generally true that -- even for this hardware -- an
8150 byte mtu will *always* give better performance than a 9000 byte
mtu. For some traffic (NFS?) it might... but for other kinds of traffic
(streaming a big file over a raw socket) I doubt it will. But then this
value really is a benchmark special, not a general purpose value.
I think exposing this as a single value to customers is a mistake. I
think knowledge of how to properly configure this value requires much
more advanced knowledge than we can expose in a single value -- and so
rightly belongs in documentation. Perhaps a man page. Perhaps a tuning
guide. I'm not sure, except that I feel pretty strongly that *this* is
*not* the right place.
And the fact that the tuning is required to get good performance,
remains, IMO, a bug. We should try hard to get the hardware and driver
engineers to recognize this problem. I mean, its not like 9K packets are
suddenly a new thing or such -- that has been the de-facto standard for
jumbo frames on ethernet pretty much from when they were first proposed.
- Garrett
More information about the opensolaris-arc
mailing list