[vortex] Improvements for 3C905C
Bogdan Costescu
Bogdan.Costescu@IWR.Uni-Heidelberg.De
Sun, 16 Jul 2000 19:19:30 +0200 (CEST)
Hi guys,
I modified the latest 2.2 driver from Andrew (also available in the
2.2.17pre series) to allow using of polling mode for Tornado cards
(905C/980). It's available along with a short description of the changes
at:
http://www.uow.edu.au/~andrewm/linux/#3c59x-bc
Be aware that it's still experimental; I used it for more than a week with
absolutely no problem, but (as usual) YMMV. Please give it a try and
report any positive/negative impressions. (and to clarify the situation:
the driver is only available for 2.2 kernels for now).
Usage:
By default, for a Tornado card (identified by IS_TORNADO flag), the driver
will use polling mode with a polling rate of 8 (in units of 320 ns). If
you want to experiment with different polling rates (between 1 and 127),
you can either modify it in the driver or pass it as a module option
(called "poll_rate"). Setting a value of 0 to poll_rate will disable the
polling mode.
Theory of operation:
Polling mode allows queuing of Tx packets without any I/O operation. The
card will poll (with a polling rate defined as above) some memory
locations to find out if it needs to process the next packet; the driver
only needs to update these memory locations (with fast memory read/write
operations) instead of doing costly in/out to query the status of the
card. The only disadvantage of this method is that a too large value for
the polling rate will increase the transmission latency.
In theory, using polling mode allows faster queuing of the packets which
translates in either faster transmission or lowering of the CPU usage for
the same number of transmitted packets.
Sincerely,
Bogdan Costescu
IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: Bogdan.Costescu@IWR.Uni-Heidelberg.De