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.

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

  • cryptsetup --force-password luksFormat
  • cryptsetup luksOpen
  • mkfs -t ext4 / dev / mapper /

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

Через некоторое время в my 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

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

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

0
задан 30 March 2020 в 19:15
1 ответ

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

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

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

0
ответ дан 30 March 2020 в 20:25

Теги

Похожие вопросы