commit | 445f9a3b0efbb0edf266b574a9d50693b8f906eb | [log] [tgz] |
---|---|---|
author | developer <developer@mediatek.com> | Wed Jan 22 10:54:40 2025 +0800 |
committer | developer <developer@mediatek.com> | Thu Jan 23 10:15:23 2025 +0800 |
tree | 031609a7fed649b816622a9337fb472116d41c2a | |
parent | 5031b59d9003f2cb0e58f1059277f5e6143215d4 [diff] |
[][kernel-6.6][common][eth][Add Ethernet RSS support] [Description] Add Ethernet RSS support. We can adjust SMP affinity with the following command: echo [CPU bitmap num] > /proc/irq/[virtual IRQ ID]/smp_affinity, with interrupts evenly assigned to 4 CPUs, we were able to measure an RX throughput of 7.3Gbps using iperf3 on the MT7988. Further optimizations will be carried out in the future. The experimental command is as follows, PC: iperf3 -c [IP] -P 10 DUT: iperf3 -s The entire indirection table can be imagined as 128 buckets, we can use the ethtool command to mark which RX ring we want to send the packets in these buckets to. Show RSS RX ring parameters in indirection table and RSS hash key: ethtool -x [interface] Change RSS RX rings weight under uniform distribution: ethtool --set-rxfh-indir [interface] equal [ring num] Change RSS RX rings weight under non-uniform distribution: ethtool --set-rxfh-indir [interface] weight [ring0 weight] [ring1 weight] [ring2 weight] [ring3 weight] [Release-log] N/A Change-Id: I3f39300545dbf9ffe912cde7fc9761361fe0a728 Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/10130517
Currently two release branches are supported:
21.02 This is the current in-use branch
git clone -b openwrt-21.02 https://git.openwrt.org/openwrt/openwrt.git
master (will be 24.0x branch later) The next version in development
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt echo "src-git mtk_openwrt_feed https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds" >> feeds.conf.default ./scripts/feeds update -a ./scripts/feeds install -a
21.02 branch
cp -af ./feeds/mtk_openwrt_feed/21.02/files/* . cp -af ./feeds/mtk_openwrt_feed/tools . for file in $(find ./feeds/mtk_openwrt_feed/21.02/patches-base -name "*.patch" | sort); do patch -f -p1 -i ${file}; done for file in $(find ./feeds/mtk_openwrt_feed/21.02/patches-feeds -name "*.patch" | sort); do patch -f -p1 -i ${file}; done
master branch
cp -af ./feeds/mtk_openwrt_feed/master/files/* . for file in $(find ./feeds/mtk_openwrt_feed/master/patches-base -name "*.patch" | sort); do patch -f -p1 -i ${file}; done
make menuconfig
21.02 branch
Target System -> MediaTek Ralink ARM Subtarget -> MT7981 / MT7986 / MT7988 Target Profile -> select as needed
master branch
Target System -> MediaTek Ralink ARM Subtarget -> Filogic 8x0 (MT798x) Target Profile -> select as needed
make V=s -j$(nproc)
#Get Openwrt 21.02 source code from Git server git clone --branch openwrt-21.02 https://git.openwrt.org/openwrt/openwrt.git #Get Openwrt master source code from Git Server git clone --branch master https://git.openwrt.org/openwrt/openwrt.git mac80211_package #Get mtk-openwrt-feeds source code git clone --branch master https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds #Change to openwrt folder cp -rf mtk-openwrt-feeds/autobuild/autobuild_5.4_mac80211_release openwrt cd openwrt; mv autobuild_5.4_mac80211_release autobuild #Add MTK feed echo "src-git mtk_openwrt_feed https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds" >> feeds.conf.default #Build MT7987 (Only for the 1st build) bash autobuild/mt7987-npu/lede-branch-build-sanity.sh #Further Build (After 1st full build) ./scripts/feeds update -a make V=s PKG_HASH=skip PKG_MIRROR_HASH=skip