Skip to contentSkip to conversation

net/ixgbe: include QPRDC in imissed stat

PATCH In review Cody Harris 2 participants 6 messages May 19, 2020 – May 28, 2020 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 net/ixgbe: include QPRDC in imissed stat

The ixgbe imissed statstic originally only contained dropped packets counted by the RXMPC registers. This change includes additional types of packet drops counted by the QPRDC registers.

Intel support confimed that the packet drops counted by the QPRDC registers do not double-count drops counted by RXMPC registers:

"RXMPC counts packets that are dropped because there is no room in the internal packet buffer. QPRDC counts packets that are dropped because they can't be transferred to system memory. These packets have been stored in the internal packet buffer, so there should be no overlap with RXMPC."

---
 drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ixgbe/ixgbe_ethdev.c +1 -1
index a4e5c539d..7284ca28e 100644
@@ -3366,7 +3366,7 @@ ixgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 	}
 
 	/* Rx Errors */
-	stats->imissed  = total_missed_rx;
+	stats->imissed  = total_missed_rx + total_qprdc;
 	stats->ierrors  = hw_stats->crcerrs +
 			  hw_stats->mspdc +
 			  hw_stats->rlec +
Signature · 1 line
2.24.1.AMZN
#1 lore raw

Sorry about all the revisions, I hit some style issues I didn't know about.

Be nice, it's my first time contributing anything :)

-Cody

On 5/18/20, 10:08 PM, "Cody Harris" <[email protected]> wrote:

    The ixgbe imissed statstic originally only contained dropped packets
    counted by the RXMPC registers. This change includes additional types of
    packet drops counted by the QPRDC registers.
    
    Intel support confimed that the packet drops counted by the QPRDC registers
    do not double-count drops counted by RXMPC registers:
    
    "RXMPC counts packets that are dropped because there is no room in the
    internal packet buffer.  QPRDC counts packets that are dropped because they
    can't be transferred to system memory. These packets have been stored in
    the internal packet buffer, so there should be no overlap with RXMPC."
    
    Signed-off-by: Cody Harris <[email protected]>
    ---
     drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
    index a4e5c539d..7284ca28e 100644
    --- a/drivers/net/ixgbe/ixgbe_ethdev.c
    +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
    @@ -3366,7 +3366,7 @@ ixgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
     	}
     
     	/* Rx Errors */
    -	stats->imissed  = total_missed_rx;
    +	stats->imissed  = total_missed_rx + total_qprdc;
     	stats->ierrors  = hw_stats->crcerrs +
     			  hw_stats->mspdc +
     			  hw_stats->rlec +
    -- 
    2.24.1.AMZN
#2 lore raw
In reply to Cody Harris

HI,Cody Harris

Quoted 30 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Cody Harris
Sent: Tuesday, May 19, 2020 1:08 PM
To: [email protected]
Cc: Cody Harris <[email protected]>
Subject: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed stat

The ixgbe imissed statstic originally only contained dropped packets counted by the RXMPC registers. This change includes additional types of packet drops counted by the QPRDC registers.

Intel support confimed that the packet drops counted by the QPRDC registers do not double-count drops counted by RXMPC registers:

"RXMPC counts packets that are dropped because there is no room in the internal packet buffer. QPRDC counts packets that are dropped because they can't be transferred to system memory. These packets have been stored in the internal packet buffer, so there should be no overlap with RXMPC."

---
 drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
index a4e5c539d..7284ca28e 100644

drivers/net/ixgbe/ixgbe_ethdev.c ixgbe_dev_stats_get(struct rte_eth_dev *dev, · line 3370

Quoted 6 lines
drivers/net/ixgbe/ixgbe_ethdev.c +1 -1
@@ -3366,7 +3366,7 @@ ixgbe_dev_stats_get(struct rte_eth_dev *dev,
 struct rte_eth_stats *stats)
 	}
 
 	/* Rx Errors */
-	stats->imissed  = total_missed_rx;
+	stats->imissed  = total_missed_rx + total_qprdc;

If Rx queue is disabled in the RXDCTL register, packet direct to this queue is also dropped and count by this Register QPRDC, but the definition of imissed is "Total of RX packets dropped by the HW because there are no available buffer" in rte layer. So, it maybe mislead users if we mix the 2 statistic, is that so?
Also, x550 has other definition for this register, we can not mix them.

Quoted 5 lines
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
 	stats->ierrors  = hw_stats->crcerrs +
 			  hw_stats->mspdc +

hw_stats->rlec +
--
2.24.1.AMZN

#3 lore raw

Hi, Cody Harris

More info, you can get the number of dropped packet per queue by stats->q_errors,
No need to add this into imissed.

Quoted 60 lines

-----Original Message-----
From: Zhao1, Wei
Sent: Thursday, May 28, 2020 11:54 AM
To: Cody Harris <[email protected]>; [email protected]
Subject: RE: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed stat

HI,Cody Harris

Quoted 12 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Cody Harris
Sent: Tuesday, May 19, 2020 1:08 PM
To: [email protected]
Cc: Cody Harris <[email protected]>
Subject: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed stat

The ixgbe imissed statstic originally only contained dropped packets counted by the RXMPC registers. This change includes additional types of packet drops counted by the QPRDC registers.

Quoted 7 lines

Intel support confimed that the packet drops counted by the QPRDC registers do not double-count drops counted by RXMPC registers:

"RXMPC counts packets that are dropped because there is no room in the internal packet buffer. QPRDC counts packets that are dropped because they can't be transferred to system memory. These packets have been stored in the internal packet buffer, so there should be no overlap with

RXMPC."

Quoted 12 lines
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
index a4e5c539d..7284ca28e 100644

drivers/net/ixgbe/ixgbe_ethdev.c ixgbe_dev_stats_get(struct rte_eth_dev *dev, · line 3370

Quoted 6 lines
drivers/net/ixgbe/ixgbe_ethdev.c +1 -1
@@ -3366,7 +3366,7 @@ ixgbe_dev_stats_get(struct rte_eth_dev *dev,
 struct rte_eth_stats *stats)
 	}
 
 	/* Rx Errors */
-	stats->imissed  = total_missed_rx;
+	stats->imissed  = total_missed_rx + total_qprdc;

If Rx queue is disabled in the RXDCTL register, packet direct to this queue is also dropped and count by this Register QPRDC, but the definition of imissed is "Total of RX packets dropped by the HW because there are no available buffer" in rte layer.
So, it maybe mislead users if we mix the 2 statistic, is that so? Also, x550 has other definition for this register, we can not mix them.

Quoted 5 lines
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
 	stats->ierrors  = hw_stats->crcerrs +
 			  hw_stats->mspdc +

hw_stats->rlec +
--
2.24.1.AMZN

#4 lore raw

Hi Zhao Wei,

I understand that the QPRDC drop count is available by stats->q_errors. I'm interested to know why imissed doesn't include it. The name imissed makes it sound like the counter counts incoming missed (valid) packets regardless of where the drop occurs during reception.

I think the name imissed is misleading if it doesn't include all types of dropped valid packets, so I made this CR to see how receptive the DPDK maintainers would be to include all dropped packet counts.

Thanks for your review,

~Cody

On 5/28/20, 1:10 AM, "Zhao1, Wei" <[email protected]> wrote:

    CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
    
    
    
    Hi, Cody Harris
    
      More info, you can get the number of dropped packet per queue by stats->q_errors,
    No need to add this into imissed.
    
    > -----Original Message-----
    > From: Zhao1, Wei
    > Sent: Thursday, May 28, 2020 11:54 AM
    > To: Cody Harris <[email protected]>; [email protected]
    > Subject: RE: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed stat
    >
    > HI,Cody Harris
    >
    > > -----Original Message-----
    > > From: dev <[email protected]> On Behalf Of Cody Harris
    > > Sent: Tuesday, May 19, 2020 1:08 PM
    > > To: [email protected]
    > > Cc: Cody Harris <[email protected]>
    > > Subject: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed
    > > stat
    > >
    > > The ixgbe imissed statstic originally only contained dropped packets
    > > counted by the RXMPC registers. This change includes additional types
    > > of packet drops counted by the QPRDC registers.
    > >
    > > Intel support confimed that the packet drops counted by the QPRDC
    > > registers do not double-count drops counted by RXMPC registers:
    > >
    > > "RXMPC counts packets that are dropped because there is no room in the
    > > internal packet buffer.  QPRDC counts packets that are dropped because
    > > they can't be transferred to system memory. These packets have been
    > > stored in the internal packet buffer, so there should be no overlap with
    > RXMPC."
    > >
    > > Signed-off-by: Cody Harris <[email protected]>
    > > ---
    > >  drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-
    > >  1 file changed, 1 insertion(+), 1 deletion(-)
    > >
    > > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
    > > b/drivers/net/ixgbe/ixgbe_ethdev.c
    > > index a4e5c539d..7284ca28e 100644
    > > --- a/drivers/net/ixgbe/ixgbe_ethdev.c
    > > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
    > > @@ -3366,7 +3366,7 @@ ixgbe_dev_stats_get(struct rte_eth_dev *dev,
    > > struct rte_eth_stats *stats)
    > >     }
    > >
    > >     /* Rx Errors */
    > > -   stats->imissed  = total_missed_rx;
    > > +   stats->imissed  = total_missed_rx + total_qprdc;
    >
    > If Rx queue is disabled in the RXDCTL register, packet direct to this queue is
    > also dropped and count by this Register QPRDC, but the definition of imissed is
    > "Total of RX packets dropped by the HW because there are no available buffer"
    > in rte layer.
    > So, it maybe mislead users if we mix the 2 statistic, is that so?
    > Also, x550 has other definition for this register, we can not mix them.
    >
    >
    > >     stats->ierrors  = hw_stats->crcerrs +
    > >                       hw_stats->mspdc +
    > >                       hw_stats->rlec +
    > > --
    > > 2.24.1.AMZN
#5 lore raw

Hi, Harris, Cody

I have reply in other mail for " why imissed doesn't include it ", thanks.

Quoted 105 lines

-----Original Message-----
From: Harris, Cody <[email protected]>
Sent: Thursday, May 28, 2020 4:17 PM
To: Zhao1, Wei <[email protected]>; [email protected]
Cc: Ye, Xiaolong <[email protected]>; Guo, Jia <[email protected]>
Subject: Re: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed stat

Hi Zhao Wei,

I understand that the QPRDC drop count is available by stats->q_errors. I'm interested to know why imissed doesn't include it. The name imissed makes it sound like the counter counts incoming missed (valid) packets regardless of where the drop occurs during reception.

I think the name imissed is misleading if it doesn't include all types of dropped valid packets, so I made this CR to see how receptive the DPDK maintainers would be to include all dropped packet counts.

Thanks for your review,

~Cody

On 5/28/20, 1:10 AM, "Zhao1, Wei" <[email protected]> wrote:

CAUTION: This email originated from outside of the organization. Do not
click links or open attachments unless you can confirm the sender and know the content is safe.

Hi, Cody Harris

More info, you can get the number of dropped packet per queue by
stats->q_errors,
No need to add this into imissed.

> -----Original Message-----
> From: Zhao1, Wei
> Sent: Thursday, May 28, 2020 11:54 AM
> To: Cody Harris <[email protected]>; [email protected]
> Subject: RE: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed
stat

Quoted 19 lines

HI,Cody Harris

Quoted 16 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Cody Harris
Sent: Tuesday, May 19, 2020 1:08 PM
To: [email protected]
Cc: Cody Harris <[email protected]>
Subject: [dpdk-dev] [PATCH v3] net/ixgbe: include QPRDC in imissed stat

The ixgbe imissed statstic originally only contained dropped packets counted by the RXMPC registers. This change includes additional types of packet drops counted by the QPRDC registers.

Intel support confimed that the packet drops counted by the QPRDC registers do not double-count drops counted by RXMPC registers:

"RXMPC counts packets that are dropped because there is no room in

the

Quoted 1 line
Quoted 1 line

internal packet buffer. QPRDC counts packets that are dropped

because

Quoted 9 lines
Quoted 2 lines

they can't be transferred to system memory. These packets have been stored in the internal packet buffer, so there should be no overlap with

RXMPC."

Quoted 6 lines
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 6 lines

drivers/net/ixgbe/ixgbe_ethdev.c ixgbe_dev_stats_get(struct rte_eth_dev

Quoted 6 lines
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
index a4e5c539d..7284ca28e 100644
@@ -3366,7 +3366,7 @@ ixgbe_dev_stats_get(struct rte_eth_dev

*dev,

Quoted 8 lines

drivers/net/ixgbe/ixgbe_ethdev.c ixgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) · line 3369

Quoted 6 lines
drivers/net/ixgbe/ixgbe_ethdev.c +1 -1
 struct rte_eth_stats *stats)
    }
 
    /* Rx Errors */
-   stats->imissed  = total_missed_rx;
+   stats->imissed  = total_missed_rx + total_qprdc;

If Rx queue is disabled in the RXDCTL register, packet direct to this

queue is

Quoted 1 line

also dropped and count by this Register QPRDC, but the definition of

imissed is

Quoted 1 line

"Total of RX packets dropped by the HW because there are no available

buffer"

Quoted 10 lines

in rte layer.
So, it maybe mislead users if we mix the 2 statistic, is that so? Also, x550 has other definition for this register, we can not mix them.

Quoted 5 lines
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
    stats->ierrors  = hw_stats->crcerrs +
                      hw_stats->mspdc +
                      hw_stats->rlec +

--
2.24.1.AMZN