Optimized build for the D-Link DIR-860L

Isn't 19.07.04 numerous buids/commits behind 12255, respectively older mt76 driver?

Yes, and older kernel as well.

1 Like

FWIW, custom build but OpenWrt SNAPSHOT, r14101-5d8fded26a runs fine (and saves settings) with a few custom patches (performance related).

2 Likes

Could you please point me towards where I can get it from?

Mind sharing these? Sounds interesting :slight_smile:

2 Likes

Nothing much, just enforcing -O2, MT (-mmt), no MIPS16 instructions and enforcing 24Kc optimization. If anything O2 should give the most impact but don't expect wonders.

https://github.com/diizzyy/openwrt/commit/585b52930c229b0511bfed46614718abb0c7c64c (just set it to -O2 to enforce it globally)
https://github.com/diizzyy/openwrt/commit/ccbdf4a88e01afb95917f1c097cd7e0880e26e9d
https://github.com/diizzyy/openwrt/commit/38eff9ea3b5747b27931dce7063166b34fdbbb94

Might also be of interest in general

3 Likes

no way :frowning:
I updated without -n option but I am still losing settings after reboot on r14284

root@OpenWrt:/tmp# sysupgrade -v -F /tmp/openwrt-ramips-mt7621-dlink_dir-860l-b1
-squashfs-sysupgrade..bin
Device dir-860l-b1 not supported by this image
Supported devices: dlink,dir-860l-b1 dir-860l-b1 - Image version mismatch: image 1.1, device 1.0. Please wipe config during upgrade (force required) or reinstall. Reason: Config cannot be migrated from swconfig to DSA (early adopters with DSA already set up may just force-flash keeping existing config)
Image check failed but --force given - will update anyway!
Saving config files...
etc/config/dhcp
etc/config/dropbear
etc/config/firewall
etc/config/luci
etc/config/network
etc/config/rpcd
etc/config/system
etc/config/ucitrack
etc/config/uhttpd
etc/config/wireless
etc/dropbear/dropbear_rsa_host_key
etc/group
etc/hosts
etc/inittab
etc/luci-uploads/.placeholder
etc/opkg/keys/0b26f36ae0f4106d
etc/opkg/keys/1035ac73cc4e59e3
etc/opkg/keys/5151f69420c3f508
etc/opkg/keys/72a57f2191b211e0
etc/opkg/keys/792d9d9b39f180dc
etc/opkg/keys/9ef4694208102c43
etc/opkg/keys/b2d571e0880ff617
etc/opkg/keys/b5043e70f9a75cde
etc/opkg/keys/c10b9afab19ee428
etc/opkg/keys/dace9d4df16896bf
etc/opkg/keys/dd6de0d06bbd3d85
etc/opkg/keys/f94b9dd6febac963
etc/passwd
etc/profile
etc/rc.local
etc/shadow
etc/shells
etc/sysctl.conf
Commencing upgrade. Closing all shell sessions.
Connection to 192.168.1.1 closed by remote host.
Connection to 192.168.1.1 closed.

Your initial image is too old so not compatible. If you delete /etc/config/network before upgrade, you may keep other settings if lucky enough.

With big upgrade like this one, it's recommended to start configuration from scratch.

I didn't try to save settings during the update, I installed latest Bartz build (r14284) and reconfigured it from scratch.
The bug is that, even if reconfigured by scratch, at every boot the settings are lost.
I tried clean update from Luci, sysupgrade with different options, factory bin installed from D-Link recovery, double flash, hardware reset after flashing, but no way to keep the settings on reboot using optimized r14284.

But guys, I have also a good news.
Once installed latest snapshot (r14468), "the settings reset bug" has gone!
I didn't check the commits but the problem has been solved.

@Bartvz , checking discussions on openwrt archive I found https://forum.archive.openwrt.org/viewtopic.php?id=35323 , some benchmarks have better results with -O2 opt flag and 24Kc optimization. Would it be a good idea to insert them in next build?

1 Like

To me, and I could be wrong, it looks like something is wrong with the mountpoints. The strange thing is that not everyone's DIR860L is affected. Has anyone tried flashing my build from D-Link's recovery? (not relevant but breed bootloader on my MIR3G is seriously cool. It is easy to flash and switch between two firmware partitions :slight_smile:

So to answer my question, flashing from D-Link recocery does not work. Makes me wonder if there are some DIR860L's with different memory chips.

Os should give around thesame performance, only some potentially code breaking optimizations do not get used. Why no MIPS16 instructions though? From what I understand they should process quicker.
The CoDel hack is interesting how much better does it perform as compared to regular CoDel?
And, ofcourse the million dollar question is, is there also such a hack for CAKE, CoDel's successor?

Currently testing, r14465

1 Like

My builds uses the Os flag which should give around the same performance since only a couple of potentially code-breaking performance optimizations are not enabled as compared to O2. In addition my builds use the -march=1004k flag which should optimize code better than the -mtune flag.

1 Like

O2 is almost always faster than Os irregardless of platform at least using GCC. I did some a while back but you can find a lot of benchmarks showing the same general trend. MIPS16 pretty much always seems to degrade performance in favor of smaller binaries, 16Mb flash is large each for at least what I want to include. I haven't benchmarked the CoDeL hack so I cannot say however I try to avoid to derive from upstream if possible.

1 Like

1004Kc is an alias for 24Kc in GCC unless that changed recently.
http://lists.infradead.org/pipermail/lede-dev/2016-August/002335.html

O2 is the default optimization for "Linux" distros in general and is what's default for the kernel.
https://www.phoronix.com/scan.php?page=news_item&px=Linux-Upstream-Against-O3-Kern

1 Like

Hardware NAT now seems to be working in master with the DSA driver as well!

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=4fb58813f94ac6cc8167138e23a92189fe50b258

Time for a new build? :slight_smile:

3 Likes

mediatek is not ramips, is it? :thinking:

mediatek: fix hardware flow offload

Add support for dealing with DSA ports

Signed-off-by: Felix Fietkau <nbd@nbd.name>

Edit: confirmed. It's not for ramips.

See picture!

2 Likes

Wait, you're right :frowning:

I happy to test this over the weekend...

I do own 3x DIR-860L B1 and I can flash all of them with with your build (or any other build) and see if they behave different.

For my productive unit I'm only interested in a stable and decent performance with as less interrupts as possible (I'm uisng my DIR-860L as smart switch + Wifi AP). 12255 still works fine for me but I do have a feeling that my interrupt errors are too high...

2 Likes

The newer builds have a few commits which dramatically reduce the interrupt errors. Only mt7603 is producing a lot of interrupts in the build I am using with the latest mt76. Changed some compiler flags which should eek out a bit more performance. Build has been running without funky was for a couple of hours, so probably a new build tomorrow :slight_smile:

4 Likes

I was quite busy this weekend but I'll start with my testings tomorrow...
Where can I find your latest build @Bartvz?

You can find r14548 here

What is new? Latest mt76 driver, a few mac80211 performance patches & regression fixes, more optimized compiler flags and the OpenWRT 2020 theme :slight_smile:

4 Likes