dpdk 问题分析:ice 100G 网卡 rx_packets 与 rx_bytes 统计问题

news/2024/11/25 21:29:41/

问题描述

1. ipackets 减掉 imissed 统计的问题

ice 100G 网卡获取的 ipackets 会减掉 imissed 的报文,此时统计的是软件实际从网卡收包的 pps,但收包的 bps 中没有减掉这部分报文长度且硬件不能提供这部分信息用于计算,为此屏蔽 ipackets 中减掉 imissed 报文的统计以修复 pps 显示问题。

2. ibytes 每个报文减掉 crc 长度导致显示带宽变少问题

ice 100G 网卡 ibytes 统计会为每个报文减掉 crc 长度,bps 变小。

手册中的相关信息

接口收到的正确报文字节统计:

在这里插入图片描述在这里插入图片描述vsi 收到的正确的报文统计:
在这里插入图片描述

dpdk-20.11 ice 驱动代码分析

ice_stats_get 函数代码:

/* Get all statistics of a port */
static int
ice_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
{struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private);struct ice_hw_port_stats *ns = &pf->stats; /* new stats *//* call read registers - updates values, now write them to struct */ice_read_stats_registers(pf, hw);stats->ipackets = pf->main_vsi->eth_stats.rx_unicast +pf->main_vsi->eth_stats.rx_multicast +pf->main_vsi->eth_stats.rx_broadcast -pf->main_vsi->eth_stats.rx_discards;stats->opackets = ns->eth.tx_unicast +ns->eth.tx_multicast +ns->eth.tx_broadcast;stats->ibytes   = pf->main_vsi->eth_stats.rx_bytes;stats->obytes   = ns->eth.tx_bytes;stats->oerrors  = ns->eth.tx_errors +pf->main_vsi->eth_stats.tx_errors;

ibytes 为输出的值,从 pf->main_vsi->eth_stats.rx_bytes 字段中获取。

ice_read_stats_registers 函数中从寄存器中读取收发包字节长度,此函数代码:

struct ice_hw_port_stats *ns = &pf->stats; /* new stats */struct ice_hw_port_stats *os = &pf->stats_offset; /* old stats *//* Get statistics of struct ice_eth_stats */ice_stat_update_40(hw, GLPRT_GORCH(hw->port_info->lport),GLPRT_GORCL(hw->port_info->lport),pf->offset_loaded, &os->eth.rx_bytes,&ns->eth.rx_bytes);........./* Workaround: CRC size should not be included in byte statistics,* so subtract RTE_ETHER_CRC_LEN from the byte counter for each rx* packet.* Add crc len size because it's not be included in ns->eth.rx_bytes!*//*ns->eth.rx_bytes -= (ns->eth.rx_unicast + ns->eth.rx_multicast +ns->eth.rx_broadcast) * RTE_ETHER_CRC_LEN;*/

读取发包字节长度:

ice_stat_update_40(hw, GLPRT_GOTCH(hw->port_info->lport),GLPRT_GOTCL(hw->port_info->lport),pf->offset_loaded, &os->eth.tx_bytes,&ns->eth.tx_bytes);

pf->main_vsi 存在时,调用 ice_update_vsi_stats 继续获取 vsi 的统计信息。相关代码:

static void
ice_update_vsi_stats(struct ice_vsi *vsi)
{struct ice_eth_stats *oes = &vsi->eth_stats_offset;struct ice_eth_stats *nes = &vsi->eth_stats;struct ice_hw *hw = ICE_VSI_TO_HW(vsi);int idx = rte_le_to_cpu_16(vsi->vsi_id);ice_stat_update_40(hw, GLV_GORCH(idx), GLV_GORCL(idx),vsi->offset_loaded, &oes->rx_bytes,&nes->rx_bytes);.........vsi->old_rx_bytes = nes->rx_bytes;/* exclude CRC bytes */nes->rx_bytes -= (nes->rx_unicast + nes->rx_multicast +nes->rx_broadcast) * RTE_ETHER_CRC_LEN;

ice 驱动中,ibytes 是使用 ice_update_vsi_stats 中获取的 pf->vsi->eth_stats->rx_bytes 的值,此值为每个收到的报文减掉了 crc len 长度。

解决方法

  1. 去掉 ipackets 减掉 rx_discards 统计的逻辑
  2. 将 ibytes 的数据源修改为 ns->eth.rx_bytes 并去掉为每个报文减掉 crc len 的逻辑。

http://www.ppmy.cn/news/112500.html

相关文章

索尼rx1r人脸识别_RX1 vs RX1R 索尼黑卡新老机皇画面解析力内战

现在的相机市场开始往微单的方向转移,以往的卡片机市场开始缩小,但却开始往高端卡片机发展了。索尼的RX1就是这样一款一体化全幅数码相机,时隔半年,RX1的小改款RX1R也跟着登场。两者在硬件配置上没有什么不同,不过,两者的成像是否也完全一致呢?日本媒体近日对两台机器进…

Verilog 实现 UART RX 接收器

目录 1、简述 2、设计 3、实现 4、测试 1、简述 串口作为 CPU 最常使用的外设资源之一,常常出现在各种场合,既然最近在入坑 FPGA,那么先搞一个简单的串口接收机来玩玩; 串口相关的基本知识就不在这里重复议论了,…

索尼黑卡相机Sony Rx100-M3与手机互联APP相关问题

虽然题目里面有黑卡,但是这个APP针对具有互联功能的索尼相机都是通用的。 索尼相机拍照可以通过相机的WiFi热点直接发送给手机,方便手机再加工或上传社交网络。也可以使用该APP用手机遥控相机,还可以控制一些拍摄参数。 但是索尼这个APP做的…

NoSQL详细介绍

NoSQL 简介 NoSQL(NoSQL Not Only SQL ),意即"不仅仅是SQL"。 在现代的计算系统上每天网络上都会产生庞大的数据量。 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codds提出的关系模型的论文 "…

Python 自定义分页方法及示例

Python 自定义分页方法及示例 后端写法: # 适用于UI的分页前端 # 适用于所有数据分页,普通分页 class Pagination(object):# totalCnt代表表单内容总数量def __init__(self, currentPage, perPageCnt, totalCnt, pageIndexCnt, urls):self.currentPage …

智能音箱音效哪个好_四大智能音箱,你觉得哪个才是最好用的?

随着科技和生活水平不断的提高,很多人对于生活的享受方面都有所重视,因此在忙碌之后,好些人会选择一些方式来放松自己,那么音乐便是其中之一了,而喜欢音乐那么必不可少的东西就是音箱了,而今天小编刚好想跟…

5款主流智能音箱入门款测评:苹果小米华为天猫小度,谁的表现更胜一筹?

智能音箱那么多,究竟谁更好?要说智能行不行,就让它们各自吵。纵观各个智能家居生态,智能音箱几乎都是作为智能家居交互入口的必备产品之一。除了可以播放音乐,这个音箱本体的功能以外,内置网关是智能家居中…

智能音箱音效哪个好_语音智能音响哪个好 智能语音音箱推荐【详解】

之前朋友买了一款智能音箱,只听他对音箱下了一个口头命令,音箱马上就执行了这个命令,开始播放音乐了,感觉非常神奇,于是小编便对这些智能音箱产生兴趣了,决定为大家推荐几款值得大家去选购的智能音箱。 无需…