Bug 213649

Summary: iwlwifi: Joining many multicast-groups in quick succession fills command queue
Product: Drivers Reporter: Maximilian Ernestus (maximilian)
Component: network-wireless-intelAssignee: Default virtual assignee for network-wireless-intel (drivers_network-wireless-intel)
Status: CLOSED CODE_FIX    
Severity: normal CC: drivers_network-wireless-intel
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 5.4.0-74-generic Subsystem:
Regression: No Bisected commit-id:
Attachments: Python script to join 200 multicast groups at once
dmsg output
patch to fix the issue

Description Maximilian Ernestus 2021-07-06 08:09:02 UTC
Created attachment 297761 [details]
Python script to join 200 multicast groups at once

> $ ethtool -i wlp58s0: | grep firmware
> firmware-version: 36.77d01142.0

Whenever I join or leave many (100 or so) multicast groups at once, I get an error "No space in command queue" from iwlwifi. On some hardware, this even caused the wifi to disconnect (I can figure out on what hardware but I need to ask my friend first).
Packages from those groups are not received properly (on what groups precisely I could try to investigate if needed).
`ip maddr` shows that the groups are joined.

I attached a simple python script to reproduce the bug and dmesg logs for 1. joining 200 multicast groups and then 2. leaving them again. Not that both events cause the command queue run full.
Comment 1 Maximilian Ernestus 2021-07-06 08:10:25 UTC
Created attachment 297763 [details]
dmsg output
Comment 2 Johannes Berg 2021-07-14 07:27:41 UTC
Created attachment 297835 [details]
patch to fix the issue
Comment 3 Johannes Berg 2021-07-14 07:33:50 UTC
I'll close this here, thanks for the report. We'll continue to track our internal version of the bug until the patch lands.