Messages in this thread | | | From | "Stuart MacDonald" <> | Subject | RE: [BUG][2.6.8.1] serial driver hangs SMP kernel, but not the UPkernel | Date | Mon, 1 Nov 2004 10:12:38 -0500 |
| |
From: Paul Fulghum [mailto:paulkf@microgate.com] > Stuart MacDonald wrote: > > I always thought the whole point of low_latency was to make the > > receive-path very fast, which means specifically allowing the flip > > routine to run from the ISR. So checking for calling from > the ISR and > > specifically disallowing that is basically negating the > entire raison > > d'etre for low_latency. > > I was thought it was to speed processing if the > caller was already in process context. Maybe the > real intentions are lost to history.
Best person to ask may be Ted; he was once the serial maintainer. Ted?
> Moving forward, Alan stated that the flip > routine should not be called in interrupt context. > His last post concerning some transient state > of low_latency has confused me.
I didn't follow that either, but I wasn't reading too closely.
> Currently, with the 8250 driver and N_TTY > line discipline, calling the flip routine from > ISR causes an SMP deadlock. There are two paths that > cause this: > 1. low_latency is set > 2. flip buffer becomes full > > So calling the flip routine from the ISR may work > with some specific drivers, but it would be > dangerous to assume this works in all cases.
I haven't looked at the 2.6 serial rewrite in depth yet, but the problem always existed in the 2.4 driver. I got around the problem by checking for interrupt context and taking the locks or not at a much earlier stage.
..Stu www.connecttech.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |