ULE/sched issues on stable/9 - why isn't preemption occuring?

Adrian Chadd adrian at freebsd.org
Tue May 29 20:08:24 UTC 2012


Hi Alexander and others,

I've been tinkering with ath(4) IO scheduling and taskqueues. In order
to get proper "in order" TX IO occuring, I've placed ath_start() into
a taskqueue so now whenever ath_start() is called, it just schedules a
taskqueue entry to run.

However, performance is worse. :-)

Here's a schedgraph trace.

http://people.freebsd.org/~adrian/ath/ktr.4-ath-iperf-using-taskqueue-for-tx.ktr.gz

I've thrown this through schedgraph.py on stable/9 and I've found some
rather annoying behaviour. It seems that the ath0 taskqueue stays in
the "runq add" state for quite a long time (1.5ms and longer) because
something else is going on on CPU #0.

I'm very confused about what's going on. I'd like a hand trying to
figure out why the schedgraph output is the way it is.

Thanks!



Adrian


More information about the freebsd-hackers mailing list