Date: Mon, 17 May 2004 13:30:45 +0200 From: "Carlos Velasco" <freebsd@newipnet.com> To: "Bruce Evans" <bde@zeta.org.au> Cc: freebsd-mobile@freebsd.org Subject: Re[5]: Modem + Network in Xircom cards, and maybe others Message-ID: <200405171330450414.08078360@192.168.128.16> In-Reply-To: <20040506151240.J19057@gamplex.bde.org> References: <200405021259230046.12648609@192.168.128.16> <200405022224250625.14440A3D@192.168.128.16> <20040505233435.B15444@gamplex.bde.org> <200405051746300245.2039F9A4@192.168.128.16> <20040506151240.J19057@gamplex.bde.org>
index | next in thread | previous in thread | raw e-mail
On 06/05/2004 at 16:44 Bruce Evans wrote:
>On Wed, 5 May 2004, Carlos Velasco wrote:
>
>> On 06/05/2004 at 0:26 Bruce Evans wrote:
>>
>> >However, you may need only this part of it. This part permits software
>> >interrupts to be delayed by 38 ticks instead of the expected maximim
>> >of 2 ticks. I keep forgetting to fix this. Scaling by hz is not quite
Yes, this patch in sio.c seems to work perfectly. So I think sio swi is
being delayed somewhere by Giant or any other thing.
>> >right, because hz may be set to values that are too small to work all
>> >the time or even most of the time. There is a clamp to 128 (min), but
>> >this is a bit small. E.g., with hz = 1000 and speed = 115200, the
>> >original code in the above gives cp4ticks = 44 and ibufsize = 128. If
what about if we fix the value or making it adjustable via sysctl?
>The broken interrupt priorities are easy to see in "ps laxw | sort -n +4"
>output. Note that the highest priorities are numerically lowest:
> 0 27 0 0 -48 0 0 12 - WL ?? 0:00.06 (swi8:
>tty:cy+ clock)
>
> [I think this is supposed to be the low priority softclock ithread
> (the "slow" cy and sio SWIs attach to it and misname themselves as
> tty:cy and tty:sio instead of clk:cy and clk:sio). It actually has
> _highest_ priority among SWIs, so the problem is sort of the opposite
> of what I thought, but mostly worse. The "slow" cy and sio SWIs
> actually have the same bogus high priority, so they don't compete
> with other SWIs. However, they compete with softclock, and all
> other SWIs have lower priority than softclock so they don't even
> compete with it. This is the reverse of what is supposed to
> happen. I think softclock starts with the correct low priority, but
> its priority gets clobbered when the cy and sio SWIs attach to it.
>
> 0 37 0 0 -48 0 0 12 - WL ?? 0:00.00 (swi0:
>tty:cy+)
>
> [I think this is the "fast" cy and sio SWI. Verbose names which get
> truncated complicate debugging.]
I have here:
0 22 0 0 -80 0 0 12 - WL ?? 0:00.01 (irq11:
cbb0 cbb1+)
...
0 28 0 0 -48 0 0 12 - WL ?? 0:01.74 (swi8:
tty:sio clock)
0 39 0 0 -48 0 0 12 - WL ?? 0:00.00 (swi0:
tty:sio)
So, I assume you are right.
>> I believe this patch to sio.c is only a temporary solution that should
be
>> removed when GIANT dissapears in most drivers, am I right?
>
>No, it (the cp4ticks one) is a more general patch, though it is temporary
>because it is not in its final form. Best-case interrupt latency cannot
>be guaranteed for SWIs, and even a saftey margin of a factor of 4 is not
>enough even without the Giant and priority bugs, since it doesn't scale
>right when "hz" is configured to large values, and configuring "hz" to
>too-large values is now encouraged by DEVICE_POLLING.
Could we commit it or something similar?
I think sio is normal mode is broken for high speeds cause this like my
problem with modem pccard.
Regards,
Carlos Velasco
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405171330450414.08078360>
