与 skbuff_head_cache 相关的 Mediatek mt76x0u USB WiFi 芯片组的 Linux 内核内存泄漏

与 skbuff_head_cache 相关的 Mediatek mt76x0u USB WiFi 芯片组的 Linux 内核内存泄漏

我在 32 位 ARM Microchip SAMA5D27 处理器上运行 Linux 6.1。该主板具有 256 MB RAM。我正在使用 Mediatek mt76x0u 芯片组将 USB 加密狗连接到主板上。

启动时,我使用 SystemD 使用下面的配置文件启动 wpa_supplicant 2.10。目的是在 Ad-Hoc 模式下使用该平台,因此mode=1.

我看到的问题是最终内核会出现 OOM 恐慌。运行约 1 小时后,主板会可靠地发生恐慌。即使我停止除 之外的所有服务,它也会出现恐慌wpa_supplicant。我分析了内核内存并slabtop创建了以下图表来显示用户空间内存使用情况与最大内核用户的情况。

内存泄漏

我相信驱动程序中存在内存泄漏,或者由于某些默认内核参数,驱动程序无法在我的低性能设备上正常工作。

我已确保从 linux-firmware 存储库安装该芯片组的最新供应商固件。最大的用户是skbuff_head_cache.

我可以做些什么来缓解这个问题吗?

我可以在内核中调整哪些相关内容skbuff_head_cache

版本:

wpa_supplicant version
Successfully initialized wpa_supplicant
wpa_supplicant v2.10
Copyright (c) 2003-2022, Jouni Malinen <[email protected]> and contributors

uname -r
6.1.22-linux4microchip-2023.04

消息:

[   29.553651] mt76x0u 1-1:1.0: ASIC revision: 76100002 MAC revision: 76502000
[   32.369384] mt76x0u 1-1:1.0: EEPROM ver:02 fae:04
[   33.046717] usbcore: registered new interface driver mt76x0u
[   52.068860] mt76x0u 1-1:1.0 mediatek: renamed from wlan0
[   63.000388] usbcore: registered new interface driver mt76x2u

配置文件

lo        no wireless extensions.

eth0      no wireless extensions.

sit0      no wireless extensions.

mediatek  IEEE 802.11  ESSID:"TestAdHoc"  
          Mode:Ad-Hoc  Frequency:2.462 GHz  Cell: DE:AD:BE:EF:DE:AD  
          Tx-Power=20 dBm  
          Retry short limit:7   RTS thr=2347 B   Fragment thr:off
          Encryption key:off
          Power Management:off

WPA 请求者配置:

ctrl_interface=DIR=/var/run/wpa_supplicant
autoscan=periodic:120
ap_scan=2
filter_ssids=1
bss_max_count=10
network={
    bgscan="simple:120:-70:3600"
    ssid="TestAdHoc"
    bssid=DE:AD:BE:EF:DE:AD
    mode=1
    #frequency=5180
    frequency=2462
    proto=WPA2
    key_mgmt=WPA-PSK
    pairwise=CCMP
    group=CCMP
    psk="password"
    priority=100
}

相关内容