On Tue, 19 Oct 2021, Feiyang Chen wrote: > > > Score Without Patches Score With Patches Performance Change SoC Model > > > 105.9 102.1 -3.6% JZ4775 > > > 132.4 124.1 -6.3% JZ4780(SMP off) > > > 170.2 155.7 -8.5% JZ4780(SMP on) > > > 101.3 91.5 -9.7% X1000E > > > 187.1 179.4 -4.1% X1830 > > > 324.9 314.3 -3.3% X2000(SMT off) > > > 394.6 373.9 -5.2% X2000(SMT off) > > > > > > > > > Compared with the V1 version, there are some improvements, but the performance > > > loss is still a bit obvious > > > > The MIPS port of Linux has always had the pride of having a particularly > > low syscall overhead and I'd rather we didn't lose this quality. > > Hi, Maciej, > > 1. The current trend is to use generic code, so I think this work is > worth it, even if there is some performance loss. Well, a trend is not a proper justification on its own for existing code, and mature one for that matter, that works. Surely it might be for an entirely new port, but the MIPS port is not exactly one. > 2. We tested the performance on 5.15-rc1~rc5 and the performance > loss on JZ4780 (SMP off) is not so obvious (about -3%). I've seen teams work hard to improve performance by less than 3%, so depending on how you look at it the loss is not necessarily small, even if not abysmal. And I find the figure of almost 10% cited for another system even more worrisome. Also you've written the figures are from UnixBench, which I suppose measures some kind of an average across various workloads. Can you elaborate on the methodology used by that benchmark? Can you tell me what the performance loss is for a cheap syscall such as `getuid'? That would indicate how much is actually lost in the invocation overhead. With that amount known, would you be able to indicate where exactly the performance is getting lost in generic code? Can it be improved? Maciej