MT6000 custom build with LuCi and some optimization - kernel 6.6.x

Could you be more specific about your definition of "destroyed"? Lower latency is going to result in a more speedy feeling connection for most users. If you are a user who truly needs a LOT of bandwidth on WiFi, you're going to feel the pain of it in terms of higher latency. That's just the way WiFi works right now. :frowning_face:

Thank you Pesa, I had the feeling I did something very stupid.
I reverted upload and download.

I made a mistake in the config!

Peak speeds are a bit lower though.

OnePlus:

S23:

1 Like

This is great! I'm excited to see how this works for others in their performance/latency tests :slight_smile:


@pesa1234 What about this, though (in addition to your tx.c patch)?

--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -685,8 +685,8 @@ __sta_info_alloc(struct ieee80211_sub_if
        }

        sta->cparams.ce_threshold = CODEL_DISABLED_THRESHOLD;
-       sta->cparams.target = MS2TIME(20);
-       sta->cparams.interval = MS2TIME(100);
+       sta->cparams.target = MS2TIME(5);
+       sta->cparams.interval = MS2TIME(50);
        sta->cparams.ecn = true;
        sta->cparams.ce_threshold_selector = 0;
        sta->cparams.ce_threshold_mask = 0;

This function is called every time a new STA associates.

edit...

@_FailSafe removed completly the call on sta_info.c

OT:
Now I plays some game with Warzone... :slight_smile:

3 Likes

I see where you removed the function call, sta_update_codel_params() within sta_info.c. But there is a another function in sta_info.c named __sta_info_alloc() that is called each time an STA associates. It sets sta->cparams.target and sta->cparams.interval as well. I have always had those patched as well to match the values you set in this commit: https://github.com/openwrt/openwrt/commit/c12782509e3c68c15541ccab774465224d355067

2 Likes

@pesa1234 I haven't updated to your latest build yet, but with my sta->cparams.target = MS2TIME(5) and sta->cparams.interval = MS2TIME(50) modifications in tx.c and sta_info.c incorporated into your r2.4 build, I can report back with the following benchmarks:

WED Enabled with 5ms target and 50ms interval:

WED Disabled with 5ms target and 50ms interval and AQL low:1500, high: 5000:

WED Disabled with 5ms target and 50ms interval and AQL low:1500, high: 1500:

upload: 2024.06.03_r26523_6.6.32_next-r2.4.mtk-testing

Changelog:
--wifi codel adjust tx.c and sta_info.c
--mt76: wed is not enabled by default (just remove wed_enable=1 from /etc/modules.d/mt7915e
--mt76: set powersave to 0

7 Likes

Just rebuilt from your latest changes and will continue to test through the evening here (US EDT). So far wireless latency is looking really, really good!

I still set my AQL high threshold to 1500 because of personal preference, but here's a view of performance on your latest test build:

Apart from the one obvious spike on the front-side of the upload test, the overall latency is very tight. Is there more tweaking that can be done for AQL? Sure is. But getting more feedback from the community on your latest test release is going to be invaluable. (cc @dtaht)

Kudos, again, for all your work thus far!

8 Likes

Here's my test results with the previous vs. latest test build and different combinations of WED and SQM.

Tests done on WiFi with iPhone 13 mini with line of sight to router. 500/500 fiber.

Overall, I still see latency benefits to using SQM versus no SQM and disabling WED.

OpenWrt SNAPSHOT r26403-12164b9fe8 / LuCI next branch 24.135.65178~2bb1e06 with SQM and WED enabled A

OpenWrt SNAPSHOT r26403-12164b9fe8 / LuCI next branch 24.135.65178~2bb1e06 no SQM and WED enabled A

OpenWrt SNAPSHOT r26523-c6bb307384 / LuCI next branch 24.146.72998~91742f3 no SQM and WED Enabled D

OpenWrt SNAPSHOT r26523-c6bb307384 / LuCI next branch 24.146.72998~91742f3 with SQM and WED Enabled A

OpenWrt SNAPSHOT r26523-c6bb307384 / LuCI next branch 24.146.72998~91742f3 with SQM and WED Disabled A

OpenWrt SNAPSHOT r26523-c6bb307384 / LuCI next branch 24.146.72998~91742f3 no SQM and WED Disabled B

Here's my setup procedure to provide insight into my settings:
Setup Process
Set Password
Set Timezone

Set Wifi

  • Advanced Settings -> Country Code
  • Channel 11 20MHz
  • Enable 256QAM
  • Enable iBF
  • Channel 161 80MHz
  • SSID’s
  • Password & WPA3/WPA2 Mixed
  • Enable KRACK
  • Enable Radios

Setup SQM
-eth1
-Download 300000
-Upload 350000
-Cake
-Piece of Cake
-Ethernet with Overhead
-44 Per Packer Overhead

Setup Packet Steering
-Network->Interfaces->Global network options
-Enabled all CPUs
-Steering flows: Suggested: 128

2 Likes

@_FailSafe can you please try to compile my latest source, seems much more better in my enviroment

Good day! May I have a short explanation on how to compile your builds? Even just a simple process flow would suffice. Thanks!

I'll be glad to try this, but I'm curious about the removal of this patch: https://github.com/pesa1234/openwrt/commit/1a081409f35c314f9670547a41afff1836d50313

Where are you setting the target and interval with that patch removed?

Here, sorry, I change the name and I forgot to add untracked...

1 Like

A+ on iPhone 12 Pro Max: https://www.waveform.com/tools/bufferbloat?test-id=759ad57e-342a-49c2-a23a-d3573a96bc86 with the previous build.
In my case:
80mhz.
Packet steering off.
Your default config for irq.
WED off.
HFO on..
WPA2/3
Nothing else.
No SQM.

3 Likes

Great! I'm rebuilding with your latest commits now and will do some testing again ASAP.

1 Like

Latest build

changelog:

  • adjusted codel param
  • removed patch mtk (wed token)

@auanasgheps can you please check this version? In my enviroment it is better of the yesterday version.

Thanks

3 Likes

A with the previous router configuration but with the new build on my iPhone: https://www.waveform.com/tools/bufferbloat?test-id=00fb8894-0d92-4de1-9295-190d98ca416e

I did few tests and they are almost identical.

3 Likes

For those that downloaded the new build, I see it (r2.4.mtk.test2) was reuploaded to include a missing patch an hour ago.

1 Like

Flashed again build from yesterday, and the upload is slower but im getting A+ on iPhone (safari) and previous config again:

MBP 2015 (safari) same build:

MBP 2015 (chrome, difference on upload speed):


Latest build from today:

Iphone (safari)

MBP 2015 safari:

MBP2015 chrome:

So A+ on yesterday's build with a codel target of 5ms and interval of 50ms, whereas today with codel target of 8ms and interval of 80ms you are getting A?