LINUX.ORG.RU

задействовано лишь одно ядро процессора

 


0

1

помогите сделать так,что бы компилилось на всех ядрах процессора... процессор 4 ядерный. но при make -j4 компиляция происходит лишь на одном ядре. то есть захожу в htop и вижу лишь одно ядро, которое загруженно на максимум. оно кстати там вообще одно. собираю gcc.


Значит нечему параллелиться

anonymous
()

А что по-твоему должно произойти? Это никак не магия, у тебя в мейкфайле должно быть что-то, что можно распараллелить. Ты бы хоть содержимое показал.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Судя по:

то есть захожу в htop и вижу лишь одно ядро, которое загруженно на максимум. оно кстати там вообще одно

проблема не в мейкфайле

Deleted
()
Ответ на: комментарий от Deleted

да , главное.... ядро huge.s но запустил я его на 4 ядерном проце, чтобы дело шло быстрее, а работать все это будет на одноядерном. то есть вся система собиралась для одноядерного, но для компиляции я запустил все это на другом железе. причина в этом?

linuxpc
() автор топика
Ответ на: комментарий от WitcherGeralt

да систему устанавливал на fujitsy на пне3. но там памяти мало для сборки, и поэтому я взял диск и установил его на другой пк, где памяти побольше и ядер тоже... думал что make -j5 решить проблему

linuxpc
() автор топика
Ответ на: комментарий от linuxpc

Была такая-же ситуация (всё в 1 поток, при 4 ядрах после смены проца), пришёл на ЛОР — закидали говном.
Решение нагуглил, но уже не помню, что надо было сделать.

anonymous
()

Я бы предположил что там какое-то не такое ядро, есть куча параметров, от которых SMP/SMT просто не будет работать (но их надо ещё найти, что ж это за дистр такой?).

anonymous
()
Ответ на: комментарий от anonymous

я уже на это внимание не обращаю. ребята странные, но в теме программирования и Линукс- лучшие.

linuxpc
() автор топика
Ответ на: комментарий от anonymous

мы же на новогодние каникулы тут всем форумом мне Slackware устанавливали.... ну вот и установили

linuxpc
() автор топика
Ответ на: комментарий от linuxpc

я не знаю чего ты там и как компилишь, по этому на угад бросил команду, я ее ввожу непосредственно перед командой компиляции ядра и тогда процес происходит на всех ядрах

$ make menuconfig
$ make-kpkg configure
$ make-kpkg clean
$ export CONCURRENCY_LEVEL=4
$ time make-kpkg --rootcmd fakeroot --revision 1.0 --initrd kernel_image

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

я не знаю чего ты там и как

У него после однопоточного проца, не более одного запущеннлого (running) процесса. При этом планировщик может запускать процессы на любом ядре.
Т.е. проблема не с компилятором, он вообще не сможет нагрузить 4 ядра одновременно. (В htop сумма нагрузки на все ядра не более 100%.)

anonymous
()

htop и вижу лишь одно ядро

Бар называется 1, или Avg?
Если Avg, то это средняя нагрузка, меняется в опциях по F2.

anonymous
()
Ответ на: комментарий от linuxpc

Выходит, ты собрал ядро без поддержки многоядерных машин. Теперь запустил его на многоядерной машине, и видишь, что ядро без поддержки многоядерных машин не поддерживает много ядер на многоядерной машине, а вместо этого видит только одно. Я правильно понял?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

я еще не собрал, а только установил... собирать буду теперь. выбрал при установке ядро huge.s, что для старых процессоров. а в остальном вы правильно поняли

linuxpc
() автор топика
Ответ на: комментарий от linuxpc

систему устанавливал на fujitsy на пне3. но там памяти мало для сборки, и поэтому я взял диск и установил его на другой пк, где памяти побольше и ядер тоже

Ну и загрузи систему на другом пк с huge-smp ядром. В 32-битной Slackware hugesmp.s, оно же kernel-huge-smp — мультипроцессное (SMP), а huge.s, оно же kernel-huge — без SMP (Symmetric MultiProcessing).

Еще б научить читать и букварь, и хоть что-то букваря сложнее, а также отвечать на все заданные вопросы, а не только на понравившиеся из тех, что показались понятными...
http://www.slackware.ru/forum/viewtopic.php?f=44&t=2688
http://www.slackware.ru/forum/viewtopic.php?f=44&t=2693
И самый перл:

позвольте мне уж как сумашедшему заниматься своими сумашедшими делами :ps_ih:
не спрашивайте зачем. не надо это даже вам умным понимать. просто если несложно подскажите и все.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 3)
Ответ на: комментарий от linuxpc

Поставить kernel-huge-smp, kernel-modules-smp, дописать в lilo.conf (допустим, корень /dev/sda2):

image = /boot/vmlinuz-huge-smp
  root = /dev/sda2
  label = hugesmp
  read-only
, если Slackware младше 14.2, вместо /boot/vmlinuz-huge-smp вписать полное имя, как оно видно по ls /boot/vmlinuz-huge-smp*, затем выполнить от root
# lilo
, убедившись, что нет ошибок, затем загрузиться с указанным ядром и собирать в мультипотоке.

Если вдруг диск воткнут не единственным, то предварительно внести исправления на этот случай, но проще поотключать лишнее...

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

ошибка вылетает при компиляции gcc... поможите найти? жалуется на mpfr. хоть я установил. может криво. скажите в репозитории Slackware есть mpfr

linuxpc
() автор топика
Ответ на: комментарий от linuxpc

скажите в репозитории Slackware есть mpfr

Беспомощный совсем? Или просто зелёный троллина?

# slackpkg search mpfr
Looking for mpfr in package list. Please wait... DONE
The list below shows all packages with name matching "mpfr".
[ Status           ] [ Repository               ] [ Package                                  ]
   installed               slackware64                  mpfr-3.1.4-x86_64-1 

http://slackware.osuosl.org/slackware-14.2/slackware/PACKAGES.TXT
PACKAGE NAME:  mpfr-3.1.4-i586-1.txz
PACKAGE LOCATION:  ./slackware/l
PACKAGE SIZE (compressed):  412 K
PACKAGE SIZE (uncompressed):  1430 K
PACKAGE DESCRIPTION:
mpfr: mpfr (Multiple-Precision Floating-Point Reliable Library)
mpfr:
mpfr: The MPFR library is a C library for multiple-precision floating-point
mpfr: computations with exact rounding (also called correct rounding).
mpfr: It is based on the GMP multiple-precision library.
mpfr: The main goal of MPFR is to provide a library for multiple-precision
mpfr: floating-point computation which is both efficient and has 
mpfr: well-defined semantics.  It copies the good ideas from the
mpfr: ANSI/IEEE-754 standard for double-precision floating-point arithmetic
mpfr: (53-bit mantissa).
mpfr:

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

Мне кажется, автор темы пытается собрать gcc не прочитав https://gcc.gnu.org/wiki/InstallingGCC. Если конкретно, то вот эту часть:

Alternatively, after extracting the GCC source archive, simply run the ./contrib/download_prerequisites script in the GCC source directory. That will download the support libraries and create symlinks, causing them to be built automatically as part of the GCC build process. Set GRAPHITE_LOOP_OPT=no in the script if you want to build GCC without ISL, which is only needed for the optional Graphite loop optimizations.

Deleted
()
Ответ на: комментарий от Deleted

я думаю, что все что происходит-происходит не зря. иногда за очевидностью идут не очевидные вещи. я Вас уверяю, что ни одна кинутая ссылка , ни одна написанная буква Вами небыли бесполезно сделанными .

ну а сейчас, медленно , очень медленно я все же подхожу к сборке ядра

linuxpc
() автор топика
Ответ на: комментарий от linuxpc

Как минимум:

Про собственно Slackware:
http://docs.slackware.com/ru:howtos:slackware_admin:kernelbuilding
http://docs.slackware.com/howtos:slackware_admin:kernelbuilding

Про ядро:
LKN: Linux Kernel in a Nutshell: http://www.kroah.com/lkn/
Она же: https://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/

Актуальная информация в Documentation/ в дереве исходников.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от linuxpc

Я только в толк не могу взять, зачем все эти танцы? Проще было сделать локальное зеркало current и им и ограничиться, и gcc там тот, что хочется, и ядро свежее, и прочий софт...

Вот только помня про целевой P-III меньше чем с гигабайтом памяти, с высокой вероятностью может оказаться не в коня корм.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от linuxpc

можете сказать, почему сборку нужно проводить в отдельной директории?

Конкретно про gcc не скажу, вообще не помню чтобы там было такое требование. Но обычно, если система сборки такое вообще умеет, это делается для удобства: чтобы не засорять исходники файлами, сгенерированными при сборке.

Deleted
()
Ответ на: комментарий от Deleted

оно есть это требование узнал, прочитав ссылку, но там не было расписано почему. поэтому решил спросить знающих людей... ну раз это не способно вызывать ошибки, то можно оставить без внимания...

linuxpc
() автор топика
Ответ на: комментарий от bormant

ну мне еще учиться и учиться, чтобы хоть какое-то понимание о Линуксе сложилось, но вот на мой взгляд, как раз для слабого железа и нужно оптимизировать ядро.... на мощном и так всегда летает, вот там правда нет смысла. но это не ответ на Ваш вопрос. ответ такой: я не знаю. вот спросите того кто собирает марки. спросите его, за чем он это делает. ну что он Вам может ответить? ну нравится, хобби что ли... так же и тут. интересно, нравится. это не для денег. это не профессия. меня даже близко не подпустят к админству. я просто пытаюсь понять Линукс. и ядро, подумав, я возьму чуть старее версией для сборки...

linuxpc
() автор топика

процессор 4 ядерный
оно кстати там вообще одно

што

targitaj ★★★★★
()
Ответ на: комментарий от linuxpc

как раз для слабого железа и нужно оптимизировать ядро...

Вот мне и непонятно, что же там после вашей сборки окажется «оптимизировано»?
Если идея была только в «а давайте соберём ядро новым компилятором», то тут чудес ждать не стоит. От использования -march=«что-то для p3» -mtune=«что-то для p3» по сравнению со стоковыми не-smp -march=i486 -mtune=i686 ожидать какого-то заметного прироста было бы странно.
Что-то ещё? Использование памяти — берём generic, делаем initrd с драйвером ФС и, если необходимо, контроллера — получаем желаемый выигрыш (ненужные модули не занимают ОЗУ). Другое дело, что умолчания в потреблении ресурсов у современных ядер адекватны современному железу, это уже далеко не 2.6.17.х и не 2.4.

Остаётся только научиться собирать ядро по готовому конфигу как самоцель — ну так себе навык, отчего б и не попробовать, если любопытно.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

я вот не пойму, а Вам не интересно было собирать ядро в начале? ну когда Вы знакомились с Линукс

linuxpc
() автор топика
Ответ на: комментарий от linuxpc

У меня были вполне прагматичные задачи — какие-то патчи, какие-то драйверы, железо, поддержанное только в новой версии, замена ядра в установщике и т.п.

Когда был любопытен сам процесс сборки, это так и называлось сборкой, но не называлось «оптимизацией»... Видна разница ;-) ?

Впрочем, повторяюсь:

Остаётся только научиться собирать ядро по готовому конфигу как самоцель — ну так себе навык, отчего б и не попробовать, если любопытно.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.