[OpenAFS-devel] rx large frames: Was: [OpenAFS] 1.4.8, Rx Performance
Improvements, and a Small Business Innovative Research grant
Rainer Toebbicke
rtb@pclella.cern.ch
Wed, 8 Oct 2008 10:32:41 +0200
Matt Benjamin schrieb:
>
> I've been speculating that what we need in this area is proper large
> frame support. Derrick says he is actively working on that. To the
> degree there are (known) open design problems, I'd appreciate any
> discussion.
>
Perhaps off-topic as you talk about "frames"...
For two reasons (at least) AFS jumbograms are faster than emitting
every single packet individually:
1. rxi_Start collects a list of packets to be sent in the current
window, then SendXmitList groups them and drops the call lock for each
packet effectively passed to UDP. After each packet it re-acquires the
call lock. This is where real time goes as due to incoming traffic
(acks) there is contention for the lock. With jumbograms you
re-acquire the lock a factor 2-4 less often.
I have got a fix that drops the call lock once for the whole Xmit
list. Numbers once I manage to iron out all the cases where it was
actually vital to hang on to it.
2. RX's ACK strategy is 'nervous', however with jumbograms you only
send one ACK per jumbogram, reduce contention on the emitter side and
hence achieve higher packet rates. This works nicely on a switch, but
has the obvious drawback of cruising blind on congested networks.
Now, for interoperability issues I don't see the "packet size" change
easily in RX. Jumbograms however can make use of large Ethernet frames
efficiently - but I would seek a reliable way to discover that the
path is large frame (or at least jumbogram-efficient) end-to-end.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
Phone: +41 22 767 8985 Fax: +41 22 767 7155