Вот видите, а мне надо чтобы было железно. У меня 4-ядерный процессор + НТ, это всего 8 потоков. Нужно чтобы Portage всегда использовал 2 настоящих ядра.
Просто когда процессор простаивает - это не есть хорошо... задействовав все четыре ядра, программы будут компилироваться быстрее. Коли они всё равно свободны.
Если они для чего-то используются, то по идее portage будет уступать процессор, если nice установить в большое число (19 - максимум)
«свободные» ядра ни к чему не нужны... только зря киловатты-часы гоняют, но при этом ничего не вычисляют. В лучшем случае какой-нить cpufreq может частоту проца занизить (если он не используется), но всё равно...
Я никак не могла понять как Portage может собирать несколько пакетов одновременно, если они должны собираться по порядку с учётом зависимостей.
Все верно… Когда к примеру
emerge xorg-x11
там в процессе сборки есть кучи шрифтов. Что мешает их ставить параллельно? Так же и со всеми остальными зависимостями и при сборке чего угодно. Если оно может быть собрано параллельно оно будет собрано параллельно, если юзер сам намерено не отключил параллельность. А если возможности параллельной сборки нет - то сборка пойдет в один «поток» сколько не крути…
Я думаю, таких случаев немного. Лучше включить MAKEOPTS="-j8" )
Это разные болтики одного механизма.
Если у тебя устанавливаемый ебюлд не требует никаких зависимостей(все уже есть в системе) то да большие MAKEOPTS это хорошо… А если в системе чего то все же нет и что то нужно дособрать… то хорошо MAKEOPTS="-j1" или "-j2" зато большие --load-average & --jobs
+ При глобальной пересборке всего мира вариант маленький MAKEOPTS + --load-average & --jobs полюбому выиграет во времени по сравнению с просто большим MAKEOPTS.
CONFIG_SCHED_SMT: SMT (Hyperthreading) scheduler support
первое упоминание о надобности потдержки HT в шедулере относиться к 2002 году
вы реально думаете что современная ОС незнает о такой особености смп систем как эта ?
это чуть ли не первое что долдно быть учтено в ОС для потдержки этой технологии
иначе ос засунет 2 нагруженных процесса на 1 физ ядро - и будет считать что все хорошо :) когда как они будут работать в половину мощности
нет - я думаю что все проще
неважно какой из 2 - она посчитает за обрубок
просто она знает что эти оба - это проц + HT
а какой именно - 0 или 1 - без разници
вот лежат два предмета
какое из них первое а какое второе ?
ну иль чтото из принципа неопределенности - система зависит от наблюдателя
в данном случае - HT являеться ядро - отличное от того на котором щас наблюдаем работабщий процесс
если первый раз прецесс работает на 0ом ядре - то HT ядро 1
если процесс работает на 1 ядре - то HT ядро 0
>Непонятно будет ли Portage считать поток НТ за отдельное ядро или нет.
Хто, што? Не с той стороны рассматриваете. Если процессор посчитает что задача достойно параллелится via HT, то он пошинкует её на HT ядра. Если же нет, то в случае -j2 заюзаются уже два железных йадра. Вроде так было.