LINUX.ORG.RU

Работает только одно ядро процессора. Как запустить остальные?

 ,


0

2

После обновления ядра, от процессора работает только одна восьмая.

При сборке пакета, с ядром kernel-genkernel-x86_64-4.1.6-gentoo cpupower показывает

    |Mperf               || Idle_Stats
CPU | C0   | Cx   | Freq || POLL | C1   | C2
   0| 99.99|  0.01|  3887||  0.00|  0.00|  0.00
   1| 99.99|  0.01|  3888||  0.00|  0.00|  0.00
   2| 99.99|  0.01|  3887||  0.00|  0.00|  0.00
   3| 99.99|  0.01|  3888||  0.00|  0.00|  0.00
   4| 99.99|  0.01|  3887||  0.00|  0.00|  0.00
   5| 98.50|  1.50|  3888||  0.00|  0.00|  1.48
   6| 99.99|  0.01|  3887||  0.00|  0.00|  0.00
   7| 99.99|  0.01|  3887||  0.00|  0.00|  0.00

А с новым kernel-genkernel-x86_64-4.2.0-gentoo-r1 при сборке того же пакета

    |Mperf               || Idle_Stats
CPU | C0   | Cx   | Freq || POLL | C1   | C2
   0| 99.97|  0.03|  3886||  0.00|  0.00|  0.00
   1|  0.00|100.00|  3448||  0.00|  0.00|100.00
   2|  0.00|100.00|  2212||  0.00|  0.00|100.00
   3|  0.01| 99.99|  1770||  0.00|  0.00| 99.99
   4|  0.03| 99.97|  1806||  0.00|  0.00| 99.97
   5|  0.02| 99.98|  1778||  0.00|  0.00| 99.98
   6|  0.02| 99.98|  1822||  0.00|  0.00| 99.98
   7|  0.00|100.00|  1839||  0.00|  0.00|100.00

В diff .config ядра ничего необычного. Я, обычно, соглашаюсь с умолчаниями.

diff kernel-config-x86_64-4.1.6-gentoo kernel-config-x86_64-4.2.0-gentoo-r1
3c3
< # Linux/x86 4.1.6-gentoo Kernel Configuration
---
> # Linux/x86 4.2.0-gentoo-r1 Kernel Configuration
51d50
< CONFIG_X86_HT=y
100d98
< CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
103a102
> CONFIG_IRQ_DOMAIN_HIERARCHY=y
104a104
> CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
145a146
> # CONFIG_RCU_EXPERT is not set
152,155d152
< CONFIG_RCU_FANOUT=64
< CONFIG_RCU_FANOUT_LEAF=16
< # CONFIG_RCU_FANOUT_EXACT is not set
< # CONFIG_RCU_FAST_NO_HZ is not set
157,158d153
< # CONFIG_RCU_BOOST is not set
< CONFIG_RCU_KTHREAD_PRIO=0
270a266
> CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
300a297
> CONFIG_HAVE_COPY_THREAD_TLS=y
320a318
> CONFIG_MODULES_TREE_LOOKUP=y
372,373c370,373
< CONFIG_ARCH_USE_QUEUE_RWLOCK=y
< CONFIG_QUEUE_RWLOCK=y
---
> CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
> CONFIG_QUEUED_SPINLOCKS=y
> CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
> CONFIG_QUEUED_RWLOCKS=y
499a500
> CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
566a568
> CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
590a593
> # CONFIG_ACPI_NFIT is not set
672a676
> CONFIG_PCI_MSI_IRQ_DOMAIN=y
719a724
> CONFIG_NET_INGRESS=y
761c766
< CONFIG_GENEVE=m
---
> CONFIG_GENEVE_CORE=m
811a817
> CONFIG_NETFILTER_INGRESS=y
1093a1100
> # CONFIG_NET_CLS_FLOWER is not set
1163a1171
> CONFIG_BT_RTL=m
1165a1174
> CONFIG_BT_HCIBTUSB_RTL=y
1217a1227
> CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
1271a1282
> # CONFIG_OF is not set
1309d1319
< # CONFIG_BLK_DEV_PMEM is not set
1374a1385,1389
> # CONFIG_SCIF_BUS is not set
1383a1403
> # CONFIG_CXL_KERNEL_API is not set
1456a1477
> # CONFIG_SCSI_SNIC is not set
1645a1667
> CONFIG_GENEVE=m
1649a1672
> # CONFIG_TUN_VNET_CROSS_LE is not set
1676a1700
> # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
1718a1743,1747
> CONFIG_NET_VENDOR_CAVIUM=y
> # CONFIG_THUNDER_NIC_PF is not set
> # CONFIG_THUNDER_NIC_VF is not set
> # CONFIG_THUNDER_NIC_BGX is not set
> # CONFIG_LIQUIDIO is not set
1747a1777
> CONFIG_NET_VENDOR_EZCHIP=y
1816a1847
> CONFIG_NET_VENDOR_RENESAS=y
1876a1908
> # CONFIG_DP83867_PHY is not set
2052a2085
> # CONFIG_WL_MEDIATEK is not set
2072a2106
> CONFIG_INPUT_LEDS=m
2202a2237
> # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
2259a2295
> # CONFIG_INPUT_DRV2665_HAPTICS is not set
2547a2584
> # CONFIG_CHARGER_BQ24257 is not set
2548a2586
> # CONFIG_CHARGER_BQ25890 is not set
2550a2589
> # CONFIG_CHARGER_RT9455 is not set
2583a2623
> # CONFIG_SENSORS_DELL_SMM is not set
2675a2716
> # CONFIG_SENSORS_TC74 is not set
2701a2743
> # CONFIG_THERMAL_WRITABLE_TRIPS is not set
2704a2747
> # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
2708a2752
> # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
2711a2756
> CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
2729a2775
> # CONFIG_MAX63XX_WATCHDOG is not set
3093a3140
> # CONFIG_VIDEO_DT3155 is not set
3302a3350
> CONFIG_DVB_CX24120=m
3403a3452
> # CONFIG_DRM_AMDGPU is not set
3417a3467
> # CONFIG_DRM_VIRTIO_GPU is not set
3546a3597
> CONFIG_SND_PROC_FS=y
3551d3601
< CONFIG_SND_KCTL_JACK=y
3643d3692
< CONFIG_SND_HDA_PREALLOC_SIZE=64
3647d3695
< # CONFIG_SND_HDA_INPUT_JACK is not set
3663a3712
> CONFIG_SND_HDA_PREALLOC_SIZE=64
3799a3849
> # CONFIG_USB_ULPI_BUS is not set
4012a4063
> # CONFIG_MMC_MTK is not set
4040a4092
> # CONFIG_LEDS_TLC591XX is not set
4080d4131
< # CONFIG_MLX5_INFINIBAND is not set
4088a4140,4141
> CONFIG_EDAC_ATOMIC_SCRUB=y
> CONFIG_EDAC_SUPPORT=y
4093d4145
< CONFIG_RTC_SYSTOHC=y
4094a4147,4148
> CONFIG_RTC_SYSTOHC=y
> CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
4161d4214
< # CONFIG_RTC_DRV_XGENE is not set
4202a4256
> # CONFIG_UIO_PRUSS is not set
4230a4285
> # CONFIG_DELL_RBTN is not set
4264a4320
> # CONFIG_INTEL_PMC_IPC is not set
4307a4364
> # CONFIG_SUNXI_SRAM is not set
4339a4397,4398
> # CONFIG_STK8312 is not set
> # CONFIG_STK8BA50 is not set
4370a4430
> # CONFIG_M62332 is not set
4409a4470
> # CONFIG_ACPI_ALS is not set
4412a4474
> # CONFIG_BH1750 is not set
4422a4485
> # CONFIG_STK3310 is not set
4435a4499
> # CONFIG_MMC35240 is not set
4436a4501
> # CONFIG_BMC150_MAGN is not set
4481a4547,4548
> # CONFIG_PHY_PXA_28NM_HSIC is not set
> # CONFIG_PHY_PXA_28NM_USB2 is not set
4491a4559,4563
> CONFIG_LIBNVDIMM=y
> # CONFIG_BLK_DEV_PMEM is not set
> CONFIG_ND_BLK=y
> CONFIG_ND_BTT=y
> CONFIG_BTT=y
4510a4583
> CONFIG_EFI_ESRT=y
4633a4707
> # CONFIG_PROC_CHILDREN is not set
4717,4718c4791
< CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
< CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
---
> CONFIG_SUNRPC_XPRT_RDMA=m
4729a4803
> # CONFIG_CIFS_SMB311 is not set
4842d4915
< CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
4861a4935
> CONFIG_SCHED_INFO=y
4899a4974
> # CONFIG_RCU_EQS_DEBUG is not set
4997a5073
> # CONFIG_DEBUG_ENTRY is not set
4999a5076,5077
> CONFIG_X86_DEBUG_FPU=y
> # CONFIG_PUNIT_ATOM_DEBUG is not set
5059a5138
> CONFIG_CRYPTO_RNG_DEFAULT=m
5061a5141,5143
> CONFIG_CRYPTO_AKCIPHER2=y
> CONFIG_CRYPTO_AKCIPHER=m
> CONFIG_CRYPTO_RSA=m
5081a5164
> # CONFIG_CRYPTO_CHACHA20POLY1305 is not set
5082a5166
> CONFIG_CRYPTO_ECHAINIV=m
5112a5197
> # CONFIG_CRYPTO_POLY1305 is not set
5156a5242
> # CONFIG_CRYPTO_CHACHA20 is not set
5174a5261
> # CONFIG_CRYPTO_842 is not set
5182c5269,5274
< # CONFIG_CRYPTO_DRBG_MENU is not set
---
> CONFIG_CRYPTO_DRBG_MENU=m
> CONFIG_CRYPTO_DRBG_HMAC=y
> # CONFIG_CRYPTO_DRBG_HASH is not set
> # CONFIG_CRYPTO_DRBG_CTR is not set
> CONFIG_CRYPTO_DRBG=m
> CONFIG_CRYPTO_JITTERENTROPY=m
5186a5279
> # CONFIG_CRYPTO_USER_API_AEAD is not set
5234a5328
> CONFIG_PERCPU_RWSEM=y
5302a5397
> CONFIG_ARCH_HAS_PMEM_API=y

Старое ядро config-4.1.6 Новое — config-4.2.0-r1

★★★

Последнее исправление: ArtSh (всего исправлений: 1)

Загрузи процессор чем-нибудь, например сборкой ядра в 8 потоков и удостоверишься, что в случае необходимости используются все ядра и потоки процессора.

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

Прочитайте ещё раз внимательно. В самом начале приведены данные cpupower monitor при сборке одно и того же пакета, но ср азными ядрами.

ArtSh ★★★
() автор топика

Это всё конечно круто, но сколько потоков нагружают процессор? Если один, баг в старом ядре, а не новом.

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

Это всё конечно круто, но сколько потоков нагружают процессор? Если один, баг в старом ядре, а не новом.

make -j9 по умолчанию в make.conf И в момент сборки в топе я вижу 9 gcc.

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

Загрузка измеряется не через cpupower, а через top. Все ядра могут быть полностью включены при нулевой загрузке.

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

Давай ты не будешь собирать пакет через emerge в качестве теста, а скачаешь исходники ядра с kernel.org, распакуешь их, далее перейдёшь в директорию куда распаковал и выполнишь:

make defconfig
make -jN bzImage
где N - число потоков сборки.

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

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

А загрузка процессора какая? Возможно gcc упираются в io и не могут нагрузить больше одного ядра.

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

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

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

Давай ты не будешь собирать пакет через emerge в качестве теста, а скачаешь исходники ядра с kernel.org, распакуешь их, далее перейдёшь в директорию куда распаковал и выполнишь:

Что это нового даст?

Но, раз уж просите, я приведу результат:

cpupower monitor
    |Mperf               || Idle_Stats
CPU | C0   | Cx   | Freq || POLL | C1   | C2
   0| 99.96|  0.04|  3886||  0.00|  0.00|  0.00
   1|  0.09| 99.91|  3905||  0.00|  0.00| 99.92
   2|  0.14| 99.86|  1774||  0.00|  0.00| 99.87
   3|  0.14| 99.86|  1780||  0.00|  0.00| 99.87
   4|  0.15| 99.85|  1777||  0.00|  0.00| 99.86
   5|  0.13| 99.87|  1787||  0.00|  0.00| 99.88
   6|  0.15| 99.85|  1773||  0.00|  0.00| 99.86
   7|  0.14| 99.86|  1750||  0.00|  0.00| 99.88

Загружено ровно одно ядро! Хотя я вижу в топе 9 gcc!

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

А загрузка процессора какая? Возможно gcc упираются в io и не могут нагрузить больше одного ядра.

Т.е. на старом ядре не упирается, а на новом упирается?

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

Пиши багрепорт разработчикам ядра. Ну либо для начала попробуй собрать новое ядро с конфигом от старого без внесения правок в конфиг. Если не поможет, то вперёд на bugs.kernel.org.

А то у меня вообще ядро 3.10.7 ;)

kostik87 ★★★★★
()

у меня вообще 4.2.0 не загружается, собранное на том же конфиге, что и предыдущие. Жду 4.2.1;

kep
()

Ох, уж эти велосипеды! Ох, уж эти гентушники!

Включи СМП и АПИК лалка

anonymous
()

Да, и проц у тебя какой? А то если интел, то у тебя хипертрейдинг выключен в новом ядре.

daemonpnz ★★★★★
()

Убивать!!! ТСа на кол!!! Не учили Пастой пользоваться?

Невозможно простыню читать на телефоне особенно!

По сабжу А это стабильное ядро? Твой проц «хорошо» поддерживается системой? Какой-нибудь powersave подключается?

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

может, ты покажешь, наконец, вывод top во время компиляции?

Давай так: я тебе на почту вывод top, а ты попытаешься воспроизвести баг. Согласен?

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

stress -c 8 все ядра грузит?

Только первое.

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

Да, и проц у тебя какой?

model name : AMD FX(tm)-8120 Eight-Core Processor

И чипсет от AMD, и видео тоже.

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

SMP врубил?

Догадайся! В стартовом посте внизу есть подсказка.

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

Про pastebin никогда не слышал?

Там, внизу начального сообщения, есть ссылки для любителей pastebin.

ArtSh ★★★
() автор топика

лол, та же фигня на 4.2.0-gentoo-r1, плюс ещё какой-то жестяк с системой: при логине в кеды половина процессов висят в disk sleep, системный монитор не видит количество оперативки и свопа, блоб nvidia подглючивает при запуске кед, в общем пздц релиз)

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

вообще жопа, что это с новым ядром? выкатили дичь какую-то)

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

Т.е. на старом ядре не упирается, а на новом упирается?

Да, именно.

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

Может у него какой-то баг к этому приводит.

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

начнём с того, как у тебя считает загрузку процессора команда top? при загрузке двух ядер должно быть 200% ну и соотвественно дальше. это если задача одна и она паралеллится.

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

Ах да, у меня vanilla-sources, а не gentoo-sources.

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

cat /proc/cpuinfo что показывает?

Вам его тоже на пастебин завернуть?

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

А маска affinity у тебя не сброшена, случаем?

если это то что в /proc/irq/default_smp_affinity то там FF. Просто такой программы (setaffinity) я не нахожу в репозитории.

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

программы (setaffinity) я не нахожу в репозитории.

Это я не то набрал, спутал с функцией sched_setaffinity().

Программа называется taskset.

в /proc/irq/default_smp_affinity

Там вроде как маска для обработчиков прерываний в ядре.

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

Программа называется taskset.

Если в ручную указать нужное ядро процессора, то переносит. Почему линукс перестал автоматически балансировать нагрузку между процессорами?

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

Маску taskset -p $$ нормальную показывает, ff?

Нет, 1. Но даже после смены маски, всё равно запихивает только в одно ядро.

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

Насколько я понимаю, изменение влияет только на процесс и его новые потомки.

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

Я тут потренировался в скриптинге:

ps axf | while IFS='' read -r line; do pid=$(echo $line | cut -d\  -f1); printf "%2s %s\n" "$(taskset -p $pid 2>/dev/null | cut -d\  -f6)" "$line"; done

Напечатает список процессов с их affinity (в самой левой колонке).

Интересно, можно ли это вывести одним только ps.

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

Ага, у меня выключен CONFIG_NO_HZ_FULL, потому у меня не проявляется.

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

а на фига на дескпоте включать CONFIG_NO_HZ_FULL ?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.