On Fri, Sep 05, 2003 at 10:06:48AM +1000, Peter Ross wrote:
> On Thu, 4 Sep 2003, Schonder, Matthias wrote:
>
> > <snip>
> > FreeBSD nutzt HyperThreading (HTT) auf Intel CPUs, wenn die CPU dies
> > unterstützt. Wenn in der Konfigurationsdatei für den angepaßten Kernel die
> > Zeile options SMP angegeben ist, erkennt und aktiviert der Kernel die
> > zusätzlichen logischen Prozessoren. Der Standard-Scheduler in FreeBSD
> > behandelt diese logischen Prozessoren genau so wie zusätzliche physikalische
> > Prozessoren. Mit anderen Worten, der Scheduler berücksichtigt bei seinen
> > Entscheidungen nicht, daß sich die logischen Prozessoren auf einer CPU
> > bestimmte Ressourcen teilen. Da dieses sehr einfache Vorgehen zu schlechter
> > Performance führen kann, werden die logischen CPUs beim Systemstart
> > standardmäßig deaktiviert. Sie können mit der sysctl-Variable
> > machdep.hlt_logical_cpus aktiviert werden.
>
> Frage: Ist es eigentlich vernuenftiger, das OS daraufhin zu
> optimieren, dass er zwischen logischen und tatsaechlichen Prozessoren im
> SMP unterscheidet (wegen der geteilten Resourcen, ich tipp mal auf Caches
> etc.)
>
> oder sollte man Hyperthreadoptimierungen dem Compiler ueberlassen (und
> dann muss man wohl auch das OS so einstellen koennen, dass es einem nicht
> in die Quere kommt)?
Der Compiler hat keine Ahnung von Threads.
Und ohne Kerneloptimierungen werden die virtuellen CPUs womöglich auf
unterschiedliche Prozesse losgelassen, während bei zwei Threads aus dem
gleichen Prozess eine höhere Datenlokalität zu erwarten gewesen wäre.
-- B.Walter BWCT http://www.bwct.de ticso(at)bwct.de info(at)bwct.de To Unsubscribe: send mail to majordomo.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Fri 05 Sep 2003 - 11:13:19 CEST