I have three Raspberry Pi 3b and 4 devices with a libuvc based program reading video frames from two USB UVC cameras. balenaOS 2.38.0+rev1
Occasionally, the kernel logs a page allocation failure in usbdev_do_ioctl. At about the same time my program will stop receiving video frames from one of the cameras.
Suggestions?
[ 134.889141] camera_controll: page allocation failure: order:5, mode:0x14040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)
[ 134.889178] camera_controll cpuset=d3d06553257a45a31bb2699524f98800b6b337a59d47a5783b190e1933cc9c97 mems_allowed=0
[ 134.889205] CPU: 1 PID: 2084 Comm: camera_controll Tainted: G C 4.14.98 #1
[ 134.889211] Hardware name: Raspberry Pi 3 Model B Rev 1.2 (DT)
[ 134.889218] Call trace:
[ 134.889238] [<ffffff9b8b28b2f0>] dump_backtrace+0x0/0x258
[ 134.889248] [<ffffff9b8b28b56c>] show_stack+0x24/0x30
[ 134.889260] [<ffffff9b8ba45918>] dump_stack+0xac/0xe4
[ 134.889271] [<ffffff9b8b3befa4>] warn_alloc+0x10c/0x198
[ 134.889280] [<ffffff9b8b3bfdbc>] __alloc_pages_nodemask+0xd04/0xd90
[ 134.889290] [<ffffff9b8b3e4ce0>] kmalloc_order+0x30/0x58
[ 134.889299] [<ffffff9b8b3e4d44>] kmalloc_order_trace+0x3c/0x110
[ 134.889311] [<ffffff9b8b413a84>] __kmalloc+0x284/0x2f0
[ 134.889325] [<ffffff9b8b7e28a4>] proc_do_submiturb+0xccc/0xde8
[ 134.889333] [<ffffff9b8b7e38e4>] usbdev_do_ioctl+0xf24/0x15b0
[ 134.889342] [<ffffff9b8b7e3fec>] usbdev_ioctl+0x34/0x48
[ 134.889351] [<ffffff9b8b440ffc>] do_vfs_ioctl+0xc4/0x840
[ 134.889359] [<ffffff9b8b4417c8>] SyS_ioctl+0x50/0x88
[ 134.889367] Exception stack(0xffffff800bdbbec0 to 0xffffff800bdbc000)
[ 134.889376] bec0: 000000000000000d 000000008038550a 0000007f84146240 0000007fa6c52b10
[ 134.889384] bee0: 0000007f9f8fe4e0 0000007f9f8fe580 0000007fa7eb07a8 0000000000000000
[ 134.889393] bf00: 000000000000001d 0000007fa4662000 0000007fa70bb0b8 0000007f841463f8
[ 134.889401] bf20: 0000000000000c00 0000000000000020 00032be8f8a18d5d 00000dc563b09730
[ 134.889410] bf40: 0000007fa6b5d2c8 0000007fa7082af8 0000007f9ef03364 0000007fa714d000
[ 134.889418] bf60: 000000000000000d 000000008038550a 0000007f84146240 0000007fa73e0000
[ 134.889426] bf80: 0000007fa191bcf8 0000000000000020 0000007fa1f04764 0000007fa239a458
[ 134.889435] bfa0: 0000007fa191bc80 0000007f9f8fe4e0 0000007fa7082be0 0000007f9f8fe4e0
[ 134.889443] bfc0: 0000007fa6c52b1c 0000000060000000 000000000000000d 000000000000001d
[ 134.889451] bfe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 134.889460] [<ffffff9b8b283ac0>] el0_svc_naked+0x34/0x38
[ 134.889467] Mem-Info:
[ 134.889482] active_anon:129547 inactive_anon:164 isolated_anon:0
active_file:13268 inactive_file:9864 isolated_file:0
unevictable:0 dirty:67 writeback:0 unstable:0
slab_reclaimable:7302 slab_unreclaimable:9162
mapped:20693 shmem:301 pagetables:1460 bounce:0
free:63424 free_pcp:28 free_cma:60448
[ 134.889503] Node 0 active_anon:518188kB inactive_anon:656kB active_file:53072kB inactive_file:39456kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:82772kB dirty:268kB writeback:0kB shmem:1204kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
[ 134.889518] DMA free:253696kB min:8192kB low:10240kB high:12288kB active_anon:517776kB inactive_anon:656kB active_file:52752kB inactive_file:39328kB unevictable:0kB writepending:268kB present:1021952kB managed:990884kB mlocked:0kB kernel_stack:3904kB pagetables:5840kB bounce:0kB free_pcp:108kB local_pcp:0kB free_cma:241792kB
[ 134.889524] lowmem_reserve[]: 0 0 0
[ 134.889540] DMA: 358*4kB (UMEHC) 135*8kB (UMEHC) 57*16kB (UMEHC) 60*32kB (UMEHC) 26*64kB (UEHC) 10*128kB (UMH) 5*256kB (UHC) 2*512kB (HC) 2*1024kB (EC) 2*2048kB (UC) 58*4096kB (C) = 254304kB
[ 134.889612] 23437 total pagecache pages
[ 134.889619] 0 pages in swap cache
[ 134.889625] Swap cache stats: add 0, delete 0, find 0/0
[ 134.889631] Free swap = 0kB
[ 134.889636] Total swap = 0kB
[ 134.889644] 255488 pages RAM
[ 134.889649] 0 pages HighMem/MovableOnly
[ 134.889654] 7767 pages reserved
[ 134.889660] 65536 pages cma reserved