Re: locking changes in tty broke low latency feature

From: Hal Murray
Date: Thu Feb 20 2014 - 16:55:52 EST



> Have you tried 3.12+ without low_latency? I ripped out a lot of locks from
> 3.12+ so it's possible it already meets your requirements.

Looks good. I don't think I could tell the difference by looking at my
normal collection of graphs.


> Hopefully you meant "milliseconds" here; single-digit microsecond latency on
> any kind of stable duty cycle is linux-rt territory, and simply not a
> reasonable goal for mainline.

No, I really meant microseconds. Remember, I'm running on a lightly loaded
system, not trying to squeeze the impossible out of an overloaded system.

top says gpsd has niced itself to -10, and ntpd is marked RT.

100 microseconds is easy. I can get down to a few 10s of microseconds. I'm
not sure how low I could get.


>> What does "unsupported termios changes" mean?

> For example, once the port is in low_latency mode, setting L_ECHO (and its
> ilk) would be rejected. And vice versa, if the L_ECHO is set in termios,
> low_latency would be rejected.

> So running a vt console is low_latency mode is not going to work.

OK. I doubt if there is any problem, but we should be sure to be explicit
about what "and its ilk" really means.

------------

I don't understand the scheduler issues that triggered this bug.

Let's go back to the big picture. In the old old days, time sharing systems
had lots of serial ports. It was common for the hardware to buffer up
several characters before requesting an interrupt in order to reduce the CPU
load. There was usually a bit in the hardware to bypass this if you thought
that response time was more important than CPU load. I was expecting
low_latency to set that bit.

Is that option even present in modern serial chips? Do the various chips
claiming to be 8250/16550 and friends correctly implement all the details of
the specs?

Many gigabit ethernet controllers have the same issue. It's often called
interrupt coalescing.

What/why is the serial/scheduler doing differently in the low_latency case?
What case does that help?



--
These are my opinions. I hate spam.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/