Re: [LKP] Re: [mm/gup] a308c71bf1: stress-ng.vm-splice.ops_per_sec -95.6% regression

From: Xing Zhengjun
Date: Thu Nov 05 2020 - 03:29:03 EST




On 11/5/2020 2:29 AM, Linus Torvalds wrote:
On Mon, Nov 2, 2020 at 1:15 AM kernel test robot <rong.a.chen@xxxxxxxxx> wrote:

Greeting,

FYI, we noticed a -95.6% regression of stress-ng.vm-splice.ops_per_sec due to commit:

commit: a308c71bf1e6e19cc2e4ced31853ee0fc7cb439a ("mm/gup: Remove enfornced COW mechanism")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

Note that this is just the reverse of the previous 2000% improvement
reported by the test robot here:

https://lore.kernel.org/lkml/20200611040453.GK12456@shao2-debian/

and the explanation seems to remain the same:

https://lore.kernel.org/lkml/CAG48ez1v1b4X5LgFya6nvi33-TWwqna_dc5jGFVosqQhdn_Nkg@xxxxxxxxxxxxxx/

IOW, this is testing a special case (zero page lookup) that the "force
COW" patches happened to turn into a regular case (COW creating a
regular page from the zero page).

The question is whether we should care about the zero page for gup_fast lookup.

If we do care, then the proper fix is likely simply to allow the zero
page in fast-gup, the same way we already do in slow-gup.

ENTIRELY UNTESTED PATCH ATTACHED.

Rong - mind testing this? I don't think the zero-page _should_ be
something that real loads care about, but hey, maybe people do want to
do things like splice zeroes very efficiently..

I test the patch, the regression still existed.

=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_threads/disk/testtime/class/cpufreq_governor/ucode:

lkp-csl-2sp5/stress-ng/debian-10.4-x86_64-20200603.cgz/x86_64-rhel-8.3/gcc-9/100%/1HDD/30s/pipe/performance/0x5002f01

commit:
1a0cf26323c80e2f1c58fc04f15686de61bfab0c
a308c71bf1e6e19cc2e4ced31853ee0fc7cb439a
da5ba9980aa2211c1e2a89fc814abab2fea6f69d (debug patch)

1a0cf26323c80e2f a308c71bf1e6e19cc2e4ced3185 da5ba9980aa2211c1e2a89fc814
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3.406e+09 -95.6% 1.49e+08 -96.4% 1.213e+08 stress-ng.vm-splice.ops
1.135e+08 -95.6% 4965911 -96.4% 4041777 stress-ng.vm-splice.ops_per_sec


And note the "untested" part of the patch. It _looks_ fairly obvious,
but maybe I'm missing something.

Linus


_______________________________________________
LKP mailing list -- lkp@xxxxxxxxxxxx
To unsubscribe send an email to lkp-leave@xxxxxxxxxxxx


--
Zhengjun Xing