mbox series

[0/4] Follow-up "Fix excessive CPU usage during compaction"

Message ID 20230515113344.6869-1-mgorman@techsingularity.net (mailing list archive)
Headers show
Series Follow-up "Fix excessive CPU usage during compaction" | expand

Message

Mel Gorman May 15, 2023, 11:33 a.m. UTC
The series "Fix excessive CPU usage during compaction" [1] attempted to
fix a bug [2] but Vlastimil noted that the fix was incomplete [3]. While
the series was merged, fast_find_migrateblock was still disabled. This
series should fix the corner cases and allow 95e7a450b819 ("Revert
"mm/compaction: fix set skip in fast_find_migrateblock"") to be safely
reverted. Details on how many pageblocks are rescanned are in the
changelog of the last patch.

[1] https://lore.kernel.org/r/20230125134434.18017-1-mgorman@techsingularity.net
[2] https://bugzilla.suse.com/show_bug.cgi?id=1206848
[3] https://lore.kernel.org/r/a55cf026-a2f9-ef01-9a4c-398693e048ea@suse.cz

 mm/compaction.c | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

Comments

Raghavendra K T May 19, 2023, 6:43 a.m. UTC | #1
On 5/15/2023 5:03 PM, Mel Gorman wrote:
> The series "Fix excessive CPU usage during compaction" [1] attempted to
> fix a bug [2] but Vlastimil noted that the fix was incomplete [3]. While
> the series was merged, fast_find_migrateblock was still disabled. This
> series should fix the corner cases and allow 95e7a450b819 ("Revert
> "mm/compaction: fix set skip in fast_find_migrateblock"") to be safely
> reverted. Details on how many pageblocks are rescanned are in the
> changelog of the last patch.
> 
> [1] https://lore.kernel.org/r/20230125134434.18017-1-mgorman@techsingularity.net
> [2] https://bugzilla.suse.com/show_bug.cgi?id=1206848
> [3] https://lore.kernel.org/r/a55cf026-a2f9-ef01-9a4c-398693e048ea@suse.cz
> 
>   mm/compaction.c | 24 ++++++++++--------------
>   1 file changed, 10 insertions(+), 14 deletions(-)
> 

Hello Mel,

Not sure how much this info would help, (also I saw it is in Andrew's
tree already) But was curious to evaluate the  patchset from perf
perspective, and I have run mmtest usemem so here is the result (Only
for  compact cases).

kernel configuration:
1) base 6.4.0-rc2
2) patchseries
3) base - revert of 7efc3b726103

Summary,
The result shows decent improvement from perf perspective as well as
compaction related data.

$ cat kcompact_fix_result_thp_madv

SUT : 256 cpu two node milan

usemem
                       6.4.0-rc2              6.4.0-rc2-compactfix 
6.4.0-rc2-revert
Amean     syst-1      102.18 (   0.00%)       98.98 *   3.13%* 
96.96 *   5.10%*
Amean     elsp-1      220.57 (   0.00%)      215.96 *   2.09%* 
212.49 *   3.67%*
Amean     syst-3      126.34 (   0.00%)      122.39 *   3.13%* 
124.09 *   1.78%*
Amean     elsp-3       84.72 (   0.00%)       81.91 *   3.31%* 
82.46 *   2.66%*
Amean     syst-4      142.64 (   0.00%)      130.69 *   8.38%* 
131.19 *   8.03%*
Amean     elsp-4       79.48 (   0.00%)       66.60 *  16.21%* 
66.37 *  16.49%*

                      6.4.0-rc2  6.4.0-rc2-compactfix    6.4.0-rc2-revert
Duration User        2106.24             2065.61        2047.87
Duration System      2598.68             2464.98        2466.33
Duration Elapsed     2693.98             2551.89        2529.83

                                 6.4.0-rc2 
6.4.0-rc2-compactfix            6.4.0-rc2-revert
Ops Minor Faults                  2440289187.00          2356626072.00 
         2354663705.00
Ops Sector Reads                         556.00                1028.00 
               2400.00
Ops Sector Writes                      20388.00               15556.00 
              16744.00
Ops Page migrate success            94642602.00            40234601.00 
           38486059.00
Ops Page migrate failure                2161.00                 467.00 
                725.00
Ops Compaction pages isolated      116977416.00            80467188.00 
           76966075.00
Ops Compaction migrate scanned     136909038.00            60060978.00 
           60479389.00
Ops Compaction free scanned        165907615.00            95661742.00 
           89794809.00
Ops Compact scan efficiency               82.52                  62.78 
                 67.35
Ops Compaction cost                   101419.99               43712.83 
              41834.25
Ops Kcompactd wake                         0.00                   0.00 
                  0.00
Ops Kcompactd migrate scanned      136909038.00            60060978.00 
           60479389.00
Ops Kcompactd free scanned         165907615.00            95661742.00 
           89794809.00
Ops NUMA alloc hit                1834950351.00          1853285684.00 
         1867258209.00
Ops NUMA alloc miss                413982625.00           359494012.00 
          345537623.00
Ops NUMA alloc local              1834950349.00          1853285649.00 
         1867258632.00
Ops NUMA base-page range updates   202326681.00           149242271.00 
          147460952.00
Ops NUMA PTE updates               202326681.00           149242271.00 
          147460952.00
Ops NUMA hint faults               195595665.00           148152760.00 
          146173618.00
Ops NUMA hint local faults %       159439097.00           148150869.00 
          146169658.00
Ops NUMA hint local percent               81.51                 100.00 
                100.00
Ops NUMA pages migrated             36155998.00                1454.00 
               3596.00
Ops AutoNUMA cost                     980081.58              741808.52 
             731900.38

Thanks
Mel Gorman May 21, 2023, 7:20 p.m. UTC | #2
On Fri, May 19, 2023 at 12:13:11PM +0530, Raghavendra K T wrote:
> On 5/15/2023 5:03 PM, Mel Gorman wrote:
> > The series "Fix excessive CPU usage during compaction" [1] attempted to
> > fix a bug [2] but Vlastimil noted that the fix was incomplete [3]. While
> > the series was merged, fast_find_migrateblock was still disabled. This
> > series should fix the corner cases and allow 95e7a450b819 ("Revert
> > "mm/compaction: fix set skip in fast_find_migrateblock"") to be safely
> > reverted. Details on how many pageblocks are rescanned are in the
> > changelog of the last patch.
> > 
> > [1] https://lore.kernel.org/r/20230125134434.18017-1-mgorman@techsingularity.net
> > [2] https://bugzilla.suse.com/show_bug.cgi?id=1206848
> > [3] https://lore.kernel.org/r/a55cf026-a2f9-ef01-9a4c-398693e048ea@suse.cz
> > 
> >   mm/compaction.c | 24 ++++++++++--------------
> >   1 file changed, 10 insertions(+), 14 deletions(-)
> > 
> 
> Hello Mel,
> 
> Not sure how much this info would help, (also I saw it is in Andrew's
> tree already) But was curious to evaluate the  patchset from perf
> perspective, and I have run mmtest usemem so here is the result (Only
> for  compact cases).
> 
> <SNIP>
>

Thanks Raghavendra!
Baolin Wang May 23, 2023, 1:47 p.m. UTC | #3
Hi Mel,

On 5/15/2023 7:33 PM, Mel Gorman wrote:
> The series "Fix excessive CPU usage during compaction" [1] attempted to
> fix a bug [2] but Vlastimil noted that the fix was incomplete [3]. While
> the series was merged, fast_find_migrateblock was still disabled. This
> series should fix the corner cases and allow 95e7a450b819 ("Revert
> "mm/compaction: fix set skip in fast_find_migrateblock"") to be safely
> reverted. Details on how many pageblocks are rescanned are in the
> changelog of the last patch.
> 
> [1] https://lore.kernel.org/r/20230125134434.18017-1-mgorman@techsingularity.net
> [2] https://bugzilla.suse.com/show_bug.cgi?id=1206848
> [3] https://lore.kernel.org/r/a55cf026-a2f9-ef01-9a4c-398693e048ea@suse.cz

I've run this series on my machine, which can solve the regression I met 
before [1], and no other issues found. So please feel free to add:
Tested-by: Baolin Wang <baolin.wang@linux.alibaba.com>

[1] 
https://lore.kernel.org/all/3576e3520c044beb2a81860aecb2d4f597089300.1682521303.git.baolin.wang@linux.alibaba.com/

> 
>   mm/compaction.c | 24 ++++++++++--------------
>   1 file changed, 10 insertions(+), 14 deletions(-)
>