LINUX.ORG.RU
ФорумAdmin

Падает «сеть» на ядре 4.14.111

 ,


0

1

Есть железка в хозяйстве Нанопи Нео Коре, там убунта 16.04 ЛТС, поднял на ней для теста v4l2rtspserver на усб uvc камеру, смотрю rtsp с нее в максималках mjpeg 1920х1080 на 30 кадрах в VLC

На некоторых железках на одном потоке, на других только на 3х клиентах vlc отваливается сеть с таким вот dmeg

[  260.070727] INFO: rcu_sched self-detected stall on CPU
[  260.076830]  0-...: (4190 ticks this GP) idle=70e/140000000000002/0 softirq=17072/17072 fqs=1976
[  260.079968] INFO: rcu_sched detected stalls on CPUs/tasks:
[  260.085937]
[  260.091905]  (t=4204 jiffies g=8837 c=8836 q=1672)
[  260.093825]  0-...: (4190 ticks this GP) idle=70e/140000000000002/0 softirq=17072/17072 fqs=1978
[  260.102957]
[  260.103041] NMI backtrace for cpu 0
[  260.103318] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C O    4.14.111 #126
[  260.104951] (detected by 1, t=4206 jiffies, g=8837, c=8836, q=1672)
[  260.105020] Hardware name: sun8i
[  260.105412] Workqueue: events dbs_work_handler
.......................
[  260.125393] Sending NMI from CPU 1 to CPUs 0:
[  270.155454] rcu_sched kthread starved for 2000 jiffies! g8837 c8836 f0x0 RCU_GP_DOING_FQS(4) ->state=0x0 ->cpu=2
[  270.165927] rcu_sched       R  running task        0     8      2 0x00000000
[  270.166732] [<c0a2f9b8>] (__schedule) from [<c0a300d8>] (preempt_schedule_common+0x1c/0x2c)
[  270.167133] [<c0a300d8>] (preempt_schedule_common) from [<c0a30124>] (_cond_resched+0x3c/0x44)
[  270.167538] [<c0a30124>] (_cond_resched) from [<c0292824>] (rcu_gp_kthread+0x57c/0x928)
[  270.167960] [<c0292824>] (rcu_gp_kthread) from [<c025d020>] (kthread+0x128/0x158)
[  270.168347] [<c025d020>] (kthread) from [<c0222058>] (ret_from_fork+0x14/0x3c)
[  270.173442] NMI backtrace for cpu 0
[  270.173601] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C O    4.14.111 #126
[  270.173668] Hardware name: sun8i
[  270.173743] Workqueue: events dbs_work_handler
[  270.173881] task: db1c0000 task.stack: db1ba000
[  270.173968] PC is at __usb_hcd_giveback_urb+0x80/0x148
[  270.174044] LR is at ehci_urb_enqueue+0xa3c/0xd98
[  270.174136] pc : [<c06d9da0>]    lr : [<c06f39d8>]    psr: 60010113
[  270.174216] sp : db1bbc60  ip : db001a80  fp : 40000000
[  270.174295] r10: c1202080  r9 : c1061520  r8 : c9ff9ce8
[  270.174390] r7 : 00000000  r6 : c9ff9c00  r5 : 60010113  r4 : d98cc000
[  270.174483] r3 : bf544f8c  r2 : 00000003  r1 : 00000000  r0 : 00000000
[  270.174582] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  270.174666] Control: 30c5387d  Table: 5a761240  DAC: fffffffd
[  270.174780] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C O    4.14.111 #126
[  270.174845] Hardware name: sun8i
[  270.174912] Workqueue: events dbs_work_handler

предполагаю, что одно ядро не успевает отрабовать прерывания ИСХОДЯЩЕГО трафика, умозаключения сделал на основе темы Расшифровка краха

Судя по предложенным там к просмотру счетчикам, у меня занимается отправкой пакетов NET_TX только 1 ядро, как бы починить-сбалансировать???

Every 2.0s: cat /proc/softirqs               Fri Jun 10 07:52:46 2022

                    CPU0       CPU1       CPU2       CPU3
          HI:    4241341          8          0          7
       TIMER:    1051360     966099     993020     922395
      NET_TX:      40438       8454       5959       6224
      NET_RX:      36476        317        374        123
       BLOCK:          0          0          0          0
    IRQ_POLL:          0          0          0          0
     TASKLET:       1371        149         21         20
       SCHED:     736057     759687     765668     686260
     HRTIMER:          0          0          0          0
         RCU:     702873     605518     618290     591059

Every 2.0s: cat /proc/interrupts                                          Fri Jun 10 07:52:47 2022

           CPU0       CPU1       CPU2       CPU3
 16:          0          0          0          0     GICv2  25 Level     vgic
 17:          0          0          0          0     GICv2  50 Level     /soc/timer@01c20c00
 18:          0          0          0          0     GICv2  29 Level     arch_timer
 19:    4656560    6907099    7007158    7089333     GICv2  30 Level     arch_timer
 20:          0          0          0          0     GICv2  27 Level     kvm guest timer
 22:          0          0          0          0     GICv2 120 Level     1ee0000.hdmi, dw-hdmi-cec
 24:          0          0          0          0     GICv2 118 Level     1c0c000.lcd-controller
 25:          0          0          0          0     GICv2  82 Level     1c02000.dma-controller
 26:         25          0          0          0     GICv2  92 Level     sunxi-mmc
 27:      32580          0          0          0     GICv2  94 Level     sunxi-mmc
 28:          1          0          0          0     GICv2 103 Level     musb-hdrc.4.auto
 29:          0          0          0          0     GICv2 104 Level     ehci_hcd:usb1
 30:          0          0          0          0     GICv2 105 Level     ohci_hcd:usb2
 31:          0          0          0          0     GICv2 106 Level     ehci_hcd:usb3
 32:          0          0          0          0     GICv2 107 Level     ohci_hcd:usb6
 33:          0          0          0          0     GICv2 108 Level     ehci_hcd:usb4
 34:          0          0          0          0     GICv2 109 Level     ohci_hcd:usb7
 35:    4316809          0          0          0     GICv2 110 Level     ehci_hcd:usb5
 36:          0          0          0          0     GICv2 111 Level     ohci_hcd:usb8
 39:      31658          0          0          0     GICv2  63 Level     1c25000.ths
 41:      35715          0          0          0     GICv2 114 Level     eth0
 42: 1373870485          0          0          0     GICv2  97 Level     sun6i-spi
 45:        462          0          0          0     GICv2  32 Level     ttyS0
 46:       8732          0          0          0     GICv2  33 Level     ttyS1
 49:          0          0          0          0     GICv2  38 Level     mv64xxx_i2c
 50:          0          0          0          0     GICv2  39 Level     mv64xxx_i2c
 51:          0          0          0          0     GICv2  40 Level     mv64xxx_i2c
 52:          0          0          0          0     GICv2  72 Level     1f00000.rtc
106:          1          0          0          0  sunxi_pio_edge  44 Edge      usb0-id-det
129:          1          0          0          0  sunxi_pio_edge   3 Edge      k1
IPI0:          0          0          0          0  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:    3920333   14075889   14485381   14792281  Rescheduling interrupts
IPI3:         56        280        309         68  Function call interrupts
IPI4:          0          0          0          0  CPU stop interrupts
IPI5:       4367       1341       1399       1418  IRQ work interrupts
IPI6:          0          0          0          0  completion interrupts
Err:          0

★★★

Судя по предложенным там к просмотру счетчикам, у меня занимается отправкой пакетов NET_TX только 1 ядро, как бы починить-сбалансировать???

irqbalance установить. Может быть поднастроить.

AS ★★★★★
()
  1. «Нельзя впихнуть невпихуемое» (с не мой)
  2. Используйте (H.264 || HEVC ) && multicast для RTP
kindof
()
Ответ на: комментарий от tz4678_2

tz4678_2

Выбора нет, оно «производителем» железки «установлено», других ядер нет

kindof

Тоже не мой выбор кучи этого железа

AS

Спасибо, возможно то что надо!

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

Это к тому что «mjpeg 1920х1080 на 30 кадрах в максималках» может быть больше 100Мбит/сек на eth0. А уж тем более x3. Так что multicast для v4l2rtspserver

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

30мбит если быть точнее каждый поток, соответственно три дают до 90

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

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