Thread (102 messages) 102 messages, 5 authors, 2020-08-18

Re: [RFC PATCH 2/3] mm: Drop use of test_and_set_skip in favor of just setting skip

From: Alex Shi <hidden>
Date: 2020-08-15 09:51:03


在 2020/8/15 上午5:15, Alexander Duyck 写道:
On Fri, Aug 14, 2020 at 7:24 AM Alexander Duyck
[off-list ref] wrote:
quoted
On Fri, Aug 14, 2020 at 12:19 AM Alex Shi [off-list ref] wrote:
quoted


在 2020/8/13 下午12:02, Alexander Duyck 写道:
quoted
Since we have dropped the late abort case we can drop the code that was
clearing the LRU flag and calling page_put since the abort case will now
not be holding a reference to a page.

Signed-off-by: Alexander Duyck <redacted>
seems the case-lru-file-mmap-read case drop about 3% on this patch in a rough testing.
on my 80 core machine.
I'm not sure how it could have that much impact on the performance
since the total effect would just be dropping what should be a
redundant test since we tested the skip bit before we took the LRU
bit, so we shouldn't need to test it again after.

I finally got my test setup working last night. I'll have to do some
testing in my environment and I can start trying to see what is going
on.
So I ran the case-lru-file-mmap-read a few times and I don't see how
it is supposed to be testing the compaction code. It doesn't seem like
compaction is running at least on my system as a result of the test
script. 
atteched my kernel config, it is used on mine machine,
I wonder if testing this code wouldn't be better done using
something like thpscale from the
mmtests(https://github.com/gormanm/mmtests)? It seems past changes to
the compaction code were tested using that, and the config script for
the test explains that it is designed specifically to stress the
compaction code. I have the test up and running now and hope to
collect results over the weekend.
I did the testing, but a awkward is that I failed to get result,
maybe leak some packages.

# ../../compare-kernels.sh

thpscale Fault Latencies
Can't locate List/BinarySearch.pm in @INC (@INC contains: /root/mmtests/bin/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vend.
BEGIN failed--compilation aborted at /root/mmtests/bin/lib/MMTests/Stat.pm line 13.
Compilation failed in require at /root/mmtests/work/log/../../bin/compare-mmtests.pl line 13.
BEGIN failed--compilation aborted at /root/mmtests/work/log/../../bin/compare-mmtests.pl line 13.
There is one change I will probably make to this patch and that is to
place the new code that is setting skip_updated where the old code was
calling test_and_set_skip_bit. By doing that we can avoid extra checks
and it should help to reduce possible collisions when setting the skip
bit in the pageblock flags.
the problem maybe on cmpchxg pb flags, that may involved other blocks changes.

Thanks.

- Alex

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help