Re: My vote against eepro* removal
From: Evgeniy Polyakov <hidden>
Date: 2006-01-20 11:05:45
Also in:
lkml
On Fri, Jan 20, 2006 at 11:51:23AM +0100, kus Kusche Klaus (kus@keba.com) wrote:
From: Evgeniy Polyakov [mailto:johnpol@2ka.mipt.ru]quoted
Each MDIO read can take upto 2 msecs (!) and at least 20 usecs in e100, and this runs in timer handler. Concider attaching (only compile tested) patch which moves e100 watchdog into workqueue.Tested the patch. Works and has the expected effects: Fully preemptible kernel: No change: 500 us delay at rtprio 1, no delay at higher rtprio. (you just moved the 500 us piece of code from one rtprio 1 kernel thread to another rtprio 1 kernel thread). Kernel with desktop preemption: Originally: Threads at any rtprio suffered from 500 us delay. With your patch: Only rtprio 1 threads suffer from 500 us delay, no delay at higher rtprio.
Just a hack:
--- drivers/net/e100.c.1 2006-01-20 13:39:19.000000000 +0300
+++ drivers/net/e100.c 2006-01-20 14:15:40.000000000 +0300@@ -879,8 +879,8 @@ writel((reg << 16) | (addr << 21) | dir | data, &nic->csr->mdi_ctrl); - for(i = 0; i < 100; i++) { - udelay(20); + for(i = 0; i < 1000; i++) { + udelay(2); if((data_out = readl(&nic->csr->mdi_ctrl)) & mdi_ready) break; }
-- Klaus Kusche (Software Development - Control Systems) KEBA AG Gewerbepark Urfahr, A-4041 Linz, Austria (Europe) Tel: +43 / 732 / 7090-3120 Fax: +43 / 732 / 7090-6301 E-Mail: kus@keba.com WWW: www.keba.com
-- Evgeniy Polyakov