Назад | Перейти на главную страницу

LUKS зависает на CentOS, запущенном на процессоре Atom C3758

Всякий раз, когда я пытаюсь установить LUKS на мою установку CentOS на материнской плате Supermicro A2SDi-8C-HLN4F (Intel ATOM CPU C3758), все работает нормально, пока процесс полностью не зависает при создании файловой системы (ext4) или попытке смонтировать файловую систему ( xfs). Неважно, попробую ли я надеть его с помощью —encrypted в моей конфигурации кикстарта, или попробуйте сделать это на физическом диске (/ dev / sde), устройстве RAID (/ dev / md127), физическом томе или логическом томе в LVM или даже в файле с обратной связью (/ dev / loop0). Та же проблема обнаруживается как в CentOS 7.7, так и в 8.1.

Я где-то читал, что память может быть проблемой, поэтому я поменял два модуля DIMM и запустил MemTest86 + с 0 ошибками.

Шаги, используемые при попытке создать файловую систему на указанных выше устройствах:

Во время выполнения команды mkfs процесс неизменно зависает, и процесс (или, скорее, дочерний процесс mkfs.ext4) не может быть остановлен, даже если kill -9.

Через некоторое время в моем dmesg появляется следующее:

[  492.528687]       Not tainted 4.18.0-147.5.1.el8_1.x86_64 #1
[  492.528719] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  492.528764] kworker/u17:0   D    0  4238      2 0x80000080
[  492.528777] Workqueue: kcryptd/253:3 kcryptd_crypt [dm_crypt]
[  492.528778] Call Trace:
[  492.528787]  ? __schedule+0x253/0x830
[  492.528791]  ? mempool_alloc+0x67/0x190
[  492.528793]  schedule+0x28/0x70
[  492.528795]  schedule_timeout+0x26d/0x390
[  492.528803]  ? qat_alg_sgl_to_bufl.isra.11+0x456/0x770 [intel_qat]
[  492.528807]  ? dma_direct_unmap_page+0x7a/0x80
[  492.528809]  wait_for_completion+0x11f/0x190
[  492.528811]  ? wake_up_q+0x70/0x70
[  492.528814]  crypt_convert+0xa13/0xf00 [dm_crypt]
[  492.528818]  ? bio_alloc_bioset+0xdc/0x210
[  492.528820]  ? __switch_to_asm+0x41/0x70
[  492.528822]  ? __switch_to_asm+0x35/0x70
[  492.528825]  kcryptd_crypt+0x2f3/0x3b0 [dm_crypt]
[  492.528828]  process_one_work+0x1a7/0x3b0
[  492.528831]  worker_thread+0x30/0x390
[  492.528833]  ? create_worker+0x1a0/0x1a0
[  492.528835]  kthread+0x112/0x130
[  492.528837]  ? kthread_flush_work_fn+0x10/0x10
[  492.528839]  ret_from_fork+0x35/0x40

Запуск команды с помощью strace mkfs ... всегда останавливается на одном и том же символе в выводе:

pwrite64(3, ”\3...”) = 4096
pwrite64(3, ”\3...”) = 4096
fsync(3

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

Как мне более точно определить, что происходит и в чем может заключаться проблема?

Что для меня решило то, что ковырялось в сообщении об ошибке. В intel_qat модуль оказывается виновником, с другим связанным модулем qat_c3xxx. Итак, занесение модулей в черный список перестало зависать.

blacklist intel_qat /bin/false
blacklist qat_c3xxx /bin/false

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