Does LEDE supports multi-core CPUs? (ipq806x)

I own TP-Link Archer C2600.
It has Dual-Core 1.4 Ghz CPU. I'm using it with SQM and 250/20 Mb/s connection.

I noticed that the second core is not being used almost at all. The entire device feels sluggish. I can't get more then 150 Mb/s with cake/layer_cake. The performance is shitty. The bufferbloat goes through the roof. With the previous old WR1043NDv1 (400 Mhz CPU) I was getting much better performance. The htop shows almost 100% usage for one core during speedtests.

I thought that the IPQ806x platform is powerful but this feels like a disappointment. Can anyone share with me their experiences with SQM and IPQ806x platform?

Definitely utilizes multi-core on both of my routers. Might be a bug w/your firmware or IPQ806x builds?

I think it can use multicore only for multiple streams, but it definitely can do over 500mb/s

One reason is that by default all driver IRQs get assigned to core0 in ipq806x and core1 remains without much to do.

You might test with "irqbalance" package to distribute IRQs to both cores.

See related discussion in these threads:

I saw irqbalance but I don't know how to run it.
The service irqbalance start does not exist. I don't want to manually enter irqbalance --oneshot every time I reboot the device. Also I think it only helps if it works continuously when the load changes.

I also saw both the threads you linked and I can't get a straight answer if it actually helps. This is a direct quote from you BTW:

Great that irqbalance helped you. But be cautious with it. Dissent1 noticed some problems if that was active quite at the boot. I did not achieve any magic improvement with it myself so I am normally not running it.

Care to commend on that?

If you want it to run at every reboot, just add the one-line command "irqbalance" to your /etc/rc.local script that is run at the end of the boot process. That way it starts automatically each time.

There is no need to use "--oneshot".

I don't remember where I saw @dissent1 saying something about irqbalance.

I have not actively used it myself, as I do not usually have gigabit-speed file transfers, so the general performance of R7800 is usually enough for me. (And as I publish my build as a community build, I have not wanted to force running that automatically, although the package is included in my build.)

So I just need to type irqbalance once every reboot to have it work continuously the entire time?

Or you can add the command to the boot script /etc /rc.local, so that do not need to type every time.

so I switched to WRT3200ACM for default router on pppoe and I can't seem to get more that 550/500 mb down/up, no sqm, but in static ip nat worked up to 930 mb, is something that can be done, beside fast path ?
I have gigabit link usually working at 880/500 mb down/up
ran irqbalance but no improvements, cpu usage is around 60% cpu0 45% cpu1, on uplink test, cpu usage is lower but the speed is almost the same

re C2600 feeling sluggish, do you by any chance have a v1.1 revision?

If yes, are you running a build from a few days/weeks old? See the bug below:

The bug is already fixed in trunk (not 100% though). If you see high CPU usage when router is idle, update to current trunk.

I've seen it handle 2x100mbps (mwan3) with sqm active on both WAN interfaces, and load not reaching 0.50 (approx. half of one core). So it should be able to handle yours just fine.

I'm using 17.01-SNAPSHOT, not trunk so I'm not 100% sure it's happening to me but I did tried the trunk twice and the performance was indeed very bad. I guess it might be because of the issue you mentioned:

This also caught my eye:

The issue might be that on ipq806x, the switch chips are connected through a GPIO bit banged MDIO bus, so any switch register accesses are expensive (relatively).

I'm running qBittorrent instance on my home server connected with 100 Mb/s Ethernet cable. Is it possible it's causing some kind of performance degradation. I haven't noticed this on WR1043ND v4 while I had it.