<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何解決MPSoC萬兆以太網應用中UDP接收丟包問題

XILINX開發者社區 ? 來源:XILINX開發者社區 ? 2023-06-14 10:10 ? 次閱讀

本文作者:AMD 賽靈思工程師GaofengZhao

本文介紹如何使能 Linux 網絡協議棧中的 RFS(receive flow steering)功能以優化 MPSoC APU 的并行處理能力,解決丟包問題。

問題描述:

在測試 ZCU102 PL 10G Ethernet with MCDMA 設計的性能時,遇到 UDP 接收丟包率很高的情況,測試使用的工具是 iperf3。

測試過程:

Board side:在 core1~3 上各開一個 iperf3 服務端用于收包,命令如下:

ec08a6f0-09d9-11ee-962d-dac502259ad0.png

Server side:使用與 zcu102 用光纖相連的服務器發送 UDP 幀,命令如下:

ec1e82f4-09d9-11ee-962d-dac502259ad0.png

雙方的網卡都工作在 MTU1500 模式下,故數據段長度設為 1472B,總帶寬暫設為 2400M。

ec358cd8-09d9-11ee-962d-dac502259ad0.png

測試結果如上圖所示,丟包率超過了百分之十,故實際傳輸速度也達不到設定的帶寬,使用 mpstat 命令觀察 CPU 使用狀況,發現接收工程中 CPU0 的軟中斷占用達到93.3%。

解決方案:

使用 RFS 接收流導向,RFS 是 Linux 網絡協議棧提供的一項輔助性功能,RFS 的目標是通過將數據包在內核中的處理引導到使用該數據包的應用程序線程對應的 CPU 來提高數據緩存的命中率,詳情可參考 Linux 內核文檔https://www.kernel.org/doc/html/latest/networking/scaling.html

在本文的測試中 Board side 上運行了三個 iperf 服務端在三個CPU 上,RFS 可以將發給某個服務端的數據包的部分處理工作交給這個服務端對應的 CPU 執行,以此平衡工作負載。
按照文檔中的說明,rps_sock_flow_entries 設置為32768,本文使用的設計中 MCDMA 共有16個接收通道,所以 rps_flow_cnt 為32768/16=2048,另外共開啟了三個 iperf 服務端,所以暫時只設置 rx-0~rx-2,綜上,執行命令如下:

ec62e43a-09d9-11ee-962d-dac502259ad0.png

重新測試后結果如上圖所示,丟包率大大降低,實際傳輸速度也達到了設定值,使用 mpstat 命令監控傳輸期間的 CPU 狀況,發現 CPU0 的軟中斷占用時間降低,而 CPU1~3 的軟中斷占用升高,可以看出實現了負載的分配,但是從總體來看,四個 CPU 的總負載升高,說明 RFS 還是有一定的額外工作開銷。

總結:

使用 RFS 可以一定程度上解決 MPSoC 10G 以太網應用(使用 MCDMA 時)中的 UDP 接收丟包問題,但是會產生額外的 CPU 開銷,如果丟包率在接受范圍內可以選擇不開啟。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 以太網
    +關注

    關注

    40

    文章

    5129

    瀏覽量

    166588
  • Linux
    +關注

    關注

    87

    文章

    11017

    瀏覽量

    206957
  • Xilinx
    +關注

    關注

    70

    文章

    2129

    瀏覽量

    119593
  • UDP
    UDP
    +關注

    關注

    0

    文章

    311

    瀏覽量

    33679
  • MPSoC
    +關注

    關注

    0

    文章

    194

    瀏覽量

    24143

原文標題:開發者分享|如何解決 MPSoC 萬兆以太網應用中 UDP 接收丟包問題

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    萬兆以太網規范

    在這10多個規范中,可以分為三類:一是基于光纖的局域網萬兆以太網規范,二是基于雙絞線(或銅線)的局域網萬兆以太網規范,三是基于光纖的廣域網萬兆
    發表于 03-27 11:26 ?5113次閱讀

    基于FPGA的萬兆以太網接口的設計與實現

    基于FPGA的萬兆以太網接口的設計與實現標準萬兆以太網物理層及媒質接入控制子層的相關協議以 應用物理環境為例,闡述了
    發表于 08-11 15:48

    xilinx~k7_connectivity_trd(ug927)萬兆以太網求助?。?!

    有哪位大神實現了xilinx的k7_connectivity_trd萬兆以太網,為什么將FPGA通過PCIE插槽插到PC上,PC認不到Xilinx萬兆以太網驅動,是哪里出問題了,該如何
    發表于 05-12 17:06

    C6678以太網載波丟失造成何解決?

    = 7,這個是說Port2的載波丟失PC上位機顯示,而我再DSP上統計結果只有這兩項是錯誤的,我推測是這兩個原因造成。DSP和P
    發表于 09-04 20:26

    AC6102 開發板千兆以太網UDP傳輸實驗

    一大串字符,在網絡的數據接收窗口我們可以看到從FPGA返回的數據也變成剛發送字符串。注意:以太網的數據幀的傳輸有長的要求, 一般在46~1500字節。所以在發送以太網數據
    發表于 12-15 15:01

    關于千兆以太網,UDP傳輸漏的問題

    FPGA千兆以太網發送數據,數據來自AD采集(有60MHz),經FIFO緩存。采用的UDP協議,一幀一幀傳輸數據,最后通信成功,但是漏嚴重,后來發現是因為:AD不停地采集數據,但每一幀UDP
    發表于 05-15 09:21

    簡談基于FPGA的千兆以太網

    知識,那么問題來了,如何去快速學習千兆以太網呢?個人認為掌握好總體框架以及接口細節,理解UDP協議,掌握抓等等,慢慢琢磨學習,大家都可以慢慢掌握好的。那么下面咱們就來聊聊千兆以太網
    發表于 02-03 15:11

    以太網MPSoC的數據通訊實現

    來承擔。發送寫控制模塊通過讀取緩存模塊的數據,配置發送數據的有效信息,完成網絡數據格式封裝,最后傳輸至多核系統通信網絡資源接口。2.4 接收模塊設計 接收模塊承擔網絡數據
    發表于 06-03 05:00

    AC6102開發板千兆以太網UDP傳輸實驗分享!

    ,或者接收其他設備傳輸過來的數據并進行處理。接觸過以太網的用戶,應該最常聽說的是TCP/IP協議,確實,在PC端或者嵌入式系統,TCP/IP協議應用非常廣泛,因此,當大家看到FPGA上帶有
    發表于 10-18 02:15

    基于MPSoC以太網接口該如何去設計?

    本文介紹了一種基于MPSoC以太網接口設計方案。
    發表于 05-19 07:22

    何解決stm32DMA+消息隊列串口數據接收的問題?

    何解決stm32DMA+消息隊列串口數據接收的問題?
    發表于 12-09 06:31

    esp32 udp broadcast問題如何解決?

    https://www.esp32.com/viewtopic.php?f=1 ... ee512eccf2我遇到和這個一樣的問題(我也沒有使用藍牙),請問有人知道如何解決嗎?
    發表于 02-14 06:41

    簡談基于FPGA的千兆以太網設計

    ,理解UDP協議,掌握抓等等,慢慢琢磨學習,大家都可以慢慢掌握好的。那么下面咱們就來聊聊千兆以太網UDP協議,并且會結合wireshark抓
    發表于 06-01 18:39

    萬兆以太網LAN與WAN技術的研究

    本文主要介紹萬兆以太網的核心技術以及在新領域中的研究。相對于傳統以太網,萬兆以太網自身有其獨特的特點,而且更是突破了傳統
    發表于 07-30 11:03 ?19次下載

    基于FPGA的UDP萬兆光通信測試

    本文開源一個FPGA項目:UDP萬兆光通信。該項目實現了萬兆光纖以太網數據回環傳輸功能。Vivado工程代碼結構和之前開源的《UDP RGM
    的頭像 發表于 09-01 16:25 ?944次閱讀
    基于FPGA的<b class='flag-5'>UDP</b><b class='flag-5'>萬兆</b>光通信測試
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>