It is important that the priority of processes using UDP multicast do not have a higher priority than the kernel thread handling the management of multicast group membership.
Failure to observe this could lead to the following situations:
- Incorrect kernel IGMP operation.
- The higher priority user process is able to effectively block the kernel thread and prevent it from identifying the multicast group to Onload which will react by dropping packets received for the multicast group.
A combination of indicators can identify this:
- ethtool reports good packets being received while multicast mismatch does not increase.
- ifconfig identifies data is being received.
- onload_stackdump will show the
rx_discard_mcast_mismatch
counter increasing.
Lowering the priority of the user process will remedy the situation and allow the multicast packets through Onload to the user process.