Is skb->queue_mapping valid for received packets?

5 messages, 2 authors, 2011-06-14 · open the first message on its own page

Is skb->queue_mapping valid for received packets?

From: Ben Greear <hidden>
Date: 2011-06-14 01:59:46

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

-- 
Ben Greear [off-list ref]
Candela Technologies Inc  http://www.candelatech.com

Re: Is skb->queue_mapping valid for received packets?

From: Ben Greear <hidden>
Date: 2011-06-14 02:06:54

On 06/13/2011 06:59 PM, Ben Greear wrote:
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?
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

-- 
Ben Greear [off-list ref]
Candela Technologies Inc  http://www.candelatech.com

Re: Is skb->queue_mapping valid for received packets?

From: Andy Gospodarek <andy@greyhouse.net>
Date: 2011-06-14 02:16:33

On Mon, Jun 13, 2011 at 06:59:45PM -0700, Ben Greear wrote:
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
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?

Re: Is skb->queue_mapping valid for received packets?

From: Andy Gospodarek <andy@greyhouse.net>
Date: 2011-06-14 02:22:01

On Mon, Jun 13, 2011 at 07:06:53PM -0700, Ben Greear wrote:
On 06/13/2011 06:59 PM, Ben Greear wrote:
quoted
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?
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.

Re: Is skb->queue_mapping valid for received packets?

From: Ben Greear <hidden>
Date: 2011-06-14 02:28:40

On 06/13/2011 07:21 PM, Andy Gospodarek wrote:
On Mon, Jun 13, 2011 at 07:06:53PM -0700, Ben Greear wrote:
quoted
On 06/13/2011 06:59 PM, Ben Greear wrote:
quoted
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?
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.
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

-- 
Ben Greear [off-list ref]
Candela Technologies Inc  http://www.candelatech.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help