Is skb->queue_mapping valid for received packets?
Subsystems (2)
Anyone know if skb->queue_mapping is set for incoming packets, ie to notify which queue they came in on? I can't find it set anywhere, and it appears it is sometimes set to 1 when it should be 0 in my system.
Maybe it's never actually set, and I'm just reading some stale data?
Thanks,
Ben
Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com
Quoted 8 lines · Ben Greear
Anyone know if
skb->queue_mappingis set for incoming packets, ie to notify which queue they came in on? I can't find it set anywhere, and it appears it is sometimes set to 1 when it should be 0 in my system.Maybe it's never actually set, and I'm just reading some stale data?
Bleh, found it the second I posted.
Seems it's skb_record_rx_queue(), and funny enough, it seems to add +1, so if you are trying to bridge pkts from eth0 to eth1 on the same queues, looks like you need to subtract one on xmit before finding the txqueue.
Or something like that.
Ben
Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com
Quoted 10 lines · Ben Greear
Quoted 8 lines · Ben Greear
Anyone know if
skb->queue_mappingis set for incoming packets, ie to notify which queue they came in on? I can't find it set anywhere, and it appears it is sometimes set to 1 when it should be 0 in my system.Maybe it's never actually set, and I'm just reading some stale data?
Quoted 8 lines
Bleh, found it the second I posted.
Seems it's
skb_record_rx_queue(), and funny enough, it seems to add +1, so if you are trying to bridge pkts from eth0 to eth1 on the same queues, looks like you need to subtract one on xmit before finding the txqueue.Or something like that.
Just saw your response after I replied. :-)
The queue_mapping storage is a bit odd, but it generally works. The value stored in queue_mapping should be decremented properly in dev_pick_tx and it should go out of your card with a tx queue that matches the rx queue.
There were some issues discovered and fixed with bonding last week related to queue_mapping and I would not be surprised if another stacked interface like bridging had an issue.
Quoted 22 lines · Andy Gospodarek
Quoted 10 lines · Ben Greear
Quoted 8 lines · Ben Greear
Anyone know if
skb->queue_mappingis set for incoming packets, ie to notify which queue they came in on? I can't find it set anywhere, and it appears it is sometimes set to 1 when it should be 0 in my system.Maybe it's never actually set, and I'm just reading some stale data?
Quoted 8 lines
Bleh, found it the second I posted.
Seems it's
skb_record_rx_queue(), and funny enough, it seems to add +1, so if you are trying to bridge pkts from eth0 to eth1 on the same queues, looks like you need to subtract one on xmit before finding the txqueue.Or something like that.
Just saw your response after I replied. :-)
Quoted 8 lines
The
queue_mappingstorage is a bit odd, but it generally works. The value stored inqueue_mappingshould be decremented properly indev_pick_txand it should go out of your card with a tx queue that matches the rx queue.There were some issues discovered and fixed with bonding last week related to
queue_mappingand I would not be surprised if another stacked interface like bridging had an issue.
I feel a bit better that I'm not the only one who got confused on this :)
A quick grep didn't show any queue mgt in bridging code, but I didn't look closely and might have grep'd the wrong thing.
Thanks,
Ben
Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com
Quoted 11 lines · Ben Greear
Anyone know if
skb->queue_mappingis set for incoming packets, ie to notify which queue they came in on? I can't find it set anywhere, and it appears it is sometimes set to 1 when it should be 0 in my system.Maybe it's never actually set, and I'm just reading some stale data?
Thanks,
Ben
Yes, it is set by calls to skb_record_rx_queue in various multiqueue- capable ethernet drivers. Where are you checking it and seeing the incorrect value?