Трассировка вызовов Linux

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

 [    2.784010] ACPI: Power Button [PWRB]
[    2.787744] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    2.795219] ACPI: Power Button [PWRF]
[   23.635987] INFO: rcu_preempt detected stalls on CPUs/tasks:
[   23.641708]  2-...: (2 GPs behind) idle=e14/0/0 softirq=14/14 fqs=0
[   23.648102]  4-...: (5 GPs behind) idle=ac8/0/0 softirq=7/9 fqs=0
[   23.654328]  6-...: (5 GPs behind) idle=8b8/0/0 softirq=9/11 fqs=0
[   23.660641]  7-...: (0 ticks this GP) idle=860/0/0 softirq=18/18 fqs=0
[   23.667758]  (detected by 5, t=21002 jiffies, g=-291, c=-292, q=42)
[   23.674555] Task dump for CPU 2:
[   23.678303] swapper/2       R  running task        0     0      1 0x00200000
[   23.685929]  ffff88046ec91400 ffff88045cb33ed0 ffffffff82092d10 0000000000000001
[   23.693942]  0000000000000000 ffffffff81f262b8 0000000000000000 ffff88045cb34000
[   23.701958]  0000000000000000 0000000000000000 ffff88045cb33ed0 ffffffff810250ff
[   23.709965] Call Trace:
[   23.712956]  [<ffffffff810250ff>] ? arch_cpu_idle+0xf/0x20
[   23.719001]  [<ffffffff810b6c6a>] ? default_idle_call+0x2a/0x30
[   23.725489]  [<ffffffff810b6f1f>] ? cpu_startup_entry+0x2af/0x310
[   23.732132]  [<ffffffff8103b3df>] ? start_secondary+0xef/0x100
[   23.738531] Task dump for CPU 4:
[   23.742307] swapper/4       R  running task        0     0      1 0x00200000
[   23.749988]  ffff88046ed11400 ffff88045cb3bed0 ffffffff82092d10 0000000000000001
[   23.758030]  0000000000000000 ffffffff81f262b8 0000000000000000 ffff88045cb3c000
[   23.766068]  0000000000000000 0000000000000000 ffff88045cb3bed0 ffffffff810250ff
[   23.774102] Call Trace:
[   23.777109]  [<ffffffff810250ff>] ? arch_cpu_idle+0xf/0x20
[   23.783171]  [<ffffffff810b6c6a>] ? default_idle_call+0x2a/0x30
[   23.789681]  [<ffffffff810b6f1f>] ? cpu_startup_entry+0x2af/0x310
[   23.796340]  [<ffffffff8103b3df>] ? start_secondary+0xef/0x100
[   23.802746] Task dump for CPU 6:
[   23.806522] swapper/6       R  running task        0     0      1 0x00200000
[   23.814167]  ffff88046ed91400 ffff88045cb4bed0 ffffffff82092d10 0000000000000001
[   23.822202]  0000000000000000 ffffffff81f262b8 0000000000000000 ffff88045cb4c000
[   23.830244]  0000000000000000 0000000000000000 ffff88045cb4bed0 ffffffff810250ff
[   23.838274] Call Trace:
[   23.841258]  [<ffffffff810250ff>] ? arch_cpu_idle+0xf/0x20
[   23.847297]  [<ffffffff810b6c6a>] ? default_idle_call+0x2a/0x30
[   23.853769]  [<ffffffff810b6f1f>] ? cpu_startup_entry+0x2af/0x310
[   23.860401]  [<ffffffff8103b3df>] ? start_secondary+0xef/0x100
[   23.866753] Task dump for CPU 7:
[   23.870480] swapper/7       R  running task        0     0      1 0x00200000
[   23.878090]  ffff88046edd1400 ffff88045cb4fed0 ffffffff82092d10 0000000000000001
[   23.886097]  0000000000000000 ffffffff81f262b8 0000000000000000 ffff88045cb50000
[   23.894122]  0000000000000000 0000000000000000 ffff88045cb4fed0 ffffffff810250ff
[   23.902135] Call Trace:
[   23.905114]  [<ffffffff810250ff>] ? arch_cpu_idle+0xf/0x20
[   23.911148]  [<ffffffff810b6c6a>] ? default_idle_call+0x2a/0x30
[   23.917607]  [<ffffffff810b6f1f>] ? cpu_startup_entry+0x2af/0x310
[   23.924242]  [<ffffffff8103b3df>] ? start_secondary+0xef/0x100
[   23.930598] rcu_preempt kthread starved for 21002 jiffies! g18446744073709551325 c18446744073709551324 f0x0 RCU_GP_WAIT_FQS(3) ->state=0x1
[   23.944112] rcu_preempt     S ffff88045cb13db8     0     7      2 0x00000000
[   23.951741]  ffff88045cb13db8 ffff88046ecceb00 ffff88045ca34c80 ffff88045cb13df0
[   23.959751]  ffff88045cb14000 00000000fffb72e9 ffff88045cb13df0 ffff88046ecceb00
[   23.967771]  0000000000000000 ffff88045cb13dd0 ffffffff819ca1fc ffff88046ecceb00
[   23.975791] Call Trace:
[   23.978770]  [<ffffffff819ca1fc>] schedule+0x3c/0x90
[   23.984298]  [<ffffffff819cd537>] schedule_timeout+0x177/0x330
[   23.990689]  [<ffffffff810d15f0>] ? del_timer_sync+0x50/0x50
[   23.996882]  [<ffffffff810ccdd0>] rcu_gp_kthread+0x5e0/0x900
[   24.003081]  [<ffffffff810cc7f0>] ? synchronize_sched_expedited+0xa0/0xa0
[   24.010415]  [<ffffffff81098239>] kthread+0xc9/0xe0
[   24.015819]  [<ffffffff819ce7cf>] ret_from_fork+0x1f/0x40
[   24.021759]  [<ffffffff81098170>] ? kthread_worker_fn+0x170/0x170
0
задан 26 July 2017 в 14:22

1 ответ

Следующие проблемы могут привести к предупреждениям останова ЦП RCU:

  • Зависящая от ЦП задача в реальном времени в ядре CONFIG_PREEMPT, которое, могло бы оказаться, вытесняло бы низкоприоритетную задачу посреди стороны чтения RCU критический раздел. Это особенно наносит ущерб, если той низкоприоритетной задаче не разрешают работать ни на каком другом ЦП, в этом случае следующий льготный период RCU никогда не может завершаться, который в конечном счете заставит систему исчерпывать память и зависать.
  • Зависящая от ЦП задача в реальном времени в ядре CONFIG_PREEMPT_RT, которое выполняет в более высоком приоритете, чем RCU softirq потоки. Это предотвратит обратные вызовы RCU от того, чтобы когда-нибудь быть вызванным, и в ядре CONFIG_PREEMPT_RCU далее предотвратит льготные периоды RCU от когда-либо завершения. Так или иначе система в конечном счете исчерпает память и зависнет.

В Вашем случае это происходит рано в процессе начальной загрузки. В зависимости от Вашего MOBO/BIOS может быть установка, чтобы отключить или установить на автоматический функцию, которая не позволит высокоприоритетному потоку дросселировать ЦП и заставлять жизненные процессы исчерпать ресурсы при ожидании циклов ЦП.

0
ответ дан 2 November 2019 в 21:11

Другие вопросы по тегам:

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