Hi all,
        sins I upgraded from 2.4.7 to 2.4.16 my self constructed USB
device is very slow (~ 25% of the old speed) handled by the kernel. I also
tested this with 2.4.18 and found no difference.
        My computers are (a) a laptop with some Intel chipset (usb-uhci)
and (b) a desktop with some VIA chipsed (usb-ohci). The module i wrote to
communicate with the device is attached in the archive and does basicly
only translate IOCTLs into usb_control_msg() calls. My usb device does
only communicate using the default pipe. The included test program
(measure_update.c, sorry comments only in German) does only read and write
512 bytes from my device and counts the time. The speed was only limited
by the device. With the 2.4.7 kernel I had about 60 transfers per second.
With 2.4.16 and 2.4.18 this has dropped down to 14.
        What basicly happens is, that the kernel gets usb_control_msg()
calls with 512 bytes of data, one for reading followed by one for
writting. The way this is handled has slowed down significantly. I tested
also to only write or read data but the speed was the same. So the problem
is independet from the direction of the call.
        In the attached archive one finds the modules i wrote (usbdmx.c),
its header file (usbdmx.h), the Makefile to compile it, the test program i
used to measure the speed (measure_update.c) and a file named syslog. This
is the output from syslog after connecting my device.
        Does anyone has a hint on how i can get back to the old speed with
the new kernel?

        Regards Jan

-- 
Jan Menzel | mailto: [EMAIL PROTECTED]
           | http://www.lighting-solutions.de
           | http://www.peperoni-light.de

Attachment: usbdmx-test.tar.gz
Description: Binary data

Reply via email to