On Wednesday 28 February 2007 15:21, Mike Galbraith wrote:
Apologies for mangling the email address as I said :-(
Where do I say that? I do not presume to manage realtime priorities in any
way. You're turning my argument about nice levels around and somehow saying
that because hyperthreading breaks the single stream me semantics by
parallelising them that I would want to stop that happening. Nowhere have I
argued that realtime semantics should be changed to somehow work around
hyperthreading. SMT nice is about managing nice only, and not realtime
priorities which are independent entities.
But the buyer is not aware. You are aware because you tinker, but the vast
majority of users who enable hyperthreading in their shiny pcs are not aware.
The only thing they know is that if they enable hyperthreading their programs
run slower in multitasking environments no matter how much they nice the
other processes. Buyers do not buy hardware knowing that the internal design
breaks something as fundamental as 'nice'. You seem to presume that most
people who get hyperthreading are happy to compromise 'nice' in order to get
their second core working and I put it to you that they do not make that
decision.
Well you know as well as I do that you're selecting out the exception rather
than the rule, and statistically overall, it does work.
Well that's certainly taking my logic for a ride. This is about managing
_nice_ and _only_ nice. Nice specifies fixed interval static priorities where
(in the risk of repeating myself) you are specifying that higher nice values
tasks you wish to receive less cpu and more latency. Dynamic priorities have
absolutely no effect on what the discrepancies are between the static
priorities of differing nice values. As for realtime priorities, again, I do
not presume to be managing them with SMT nice. They are unique entities
unrelated to nice values. The only thing they have in common with nice levels
is that if something is running without a realtime priority, it should be
preempted by the realtime task as you have specified that the realtime task
should receive all the cpu over the non-realtime task. I don't pretend that
there is some cpu percentage relationship between different _realtime
priorities_ and do not try to manage them in any way.
Again you're saying here that if the hardware breaks nice levels we should not
bother trying to enforce them. As I said before, this is an extension of
arguing that we should not try to enforce nice except on hardware that has
priority support within the cpu.
We're going to have to agree to disagree, but feel free to have the final word
of course.
--
-ck
--
'In general this practice is meant to exhaust the opposition in some debate,
and when they fail to respond, claim the silence as assent, to prevent
an "unfavorable" conclusion of a debate from being reached by refusing to
allow the discussion to conclude so long as its conclusion is unfavorable,
and to discourage future "challenges".' -wli
-