Re: [RFC PATCH v2 0/4] Eliminate zone->lock contention for will-it-scale/page_fault1 and parallel free

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/20/2018 04:54 AM, Aaron Lu wrote:
This series is meant to improve zone->lock scalability for order 0 pages.
With will-it-scale/page_fault1 workload, on a 2 sockets Intel Skylake
server with 112 CPUs, CPU spend 80% of its time spinning on zone->lock.
Perf profile shows the most time consuming part under zone->lock is the
cache miss on "struct page", so here I'm trying to avoid those cache
misses.

I ran page_fault1 comparing 4.16-rc5 to your recent work, these four patches plus the three others from your github branch zone_lock_rfc_v2. Out of curiosity I also threw in another 4.16-rc5 with the pcp batch size adjusted so high (10922 pages) that we always stay in the pcp lists and out of buddy completely. I used your patch[*] in this last kernel.

This was on a 2-socket, 20-core broadwell server.

There were some small regressions a bit outside the noise at low process counts (2-5) but I'm not sure they're repeatable. Anyway, it does improve the microbenchmark across the board.

[*] lkml.kernel.org/r/20170919072342.GB7263 () intel ! com

Attachment: gnuplot-pgfs-vs-ntask-iter1.png
Description: PNG image

,,586305.0,747,587731.0,1766
4.0,3.4,609505.0,1563,608007.0,1170
8.0,5.9,633145.0,1752,622690.0,1287
,,1131428.0,7397,1022890.0,7334
-1.0,-0.3,1119974.0,2558,1020102.0,5707
3.0,3.3,1165004.0,6232,1056689.0,6411
,,1590413.0,6412,1346900.0,8925
-0.7,1.0,1579816.0,7217,1360376.0,4418
2.3,3.4,1626925.0,5321,1392515.0,8180
,,2064476.0,5035,1656475.0,14714
-1.0,0.9,2043240.0,9070,1672036.0,5342
1.2,3.9,2089959.0,8287,1721614.0,7797
,,2486090.0,11178,1878085.0,15286
-0.1,1.1,2483021.0,15100,1898459.0,9295
1.3,4.0,2517602.0,13717,1952995.0,7481
,,2869756.0,9194,2058398.0,20580
0.4,3.5,2882220.0,20584,2129444.0,9689
2.4,6.0,2937618.0,14126,2182859.0,9650
,,3242589.0,15354,2231977.0,20188
0.9,3.2,3270796.0,15125,2303780.0,6607
2.0,6.7,3306528.0,17683,2381279.0,16507
,,3598209.0,10765,2361819.0,13509
1.2,4.5,3642407.0,14894,2469191.0,16250
2.0,8.1,3671834.0,17501,2552786.0,12112
,,3974345.0,12605,2511565.0,31986
2.3,4.8,4067553.0,11070,2632608.0,8158
2.5,9.8,4073111.0,12464,2758075.0,31433
,,4333026.0,12187,2636914.0,15065
2.4,5.8,4435852.0,21692,2789949.0,16400
3.2,10.3,4470666.0,23663,2907263.0,15052
,,4932423.0,12184,2675769.0,23925
2.7,3.6,5064666.0,18600,2771476.0,22438
3.6,7.9,5110434.0,21460,2888419.0,18181
,,5461255.0,14704,2631232.0,24390
1.7,2.5,5554957.0,20979,2697554.0,19370
3.1,5.8,5629143.0,22781,2782902.0,20347
,,5924367.0,11835,2445607.0,25821
1.4,4.9,6004723.0,19071,2566547.0,26031
2.9,8.4,6094087.0,17676,2651793.0,20051
,,6381611.0,16792,2277611.0,39558
1.2,4.4,6459693.0,18869,2377795.0,25094
2.4,12.4,6534837.0,24991,2560085.0,12638
,,6804737.0,13654,2232121.0,19409
1.1,4.8,6881730.0,18995,2338868.0,18923
2.4,12.5,6970318.0,28677,2510594.0,25891
,,7197145.0,17500,2313168.0,16694
1.2,4.5,7287072.0,28727,2418232.0,23120
2.6,7.6,7383613.0,17992,2489382.0,28385
,,7550498.0,15101,2226427.0,24769
1.6,4.4,7667641.0,24306,2324675.0,16265
2.8,5.3,7761917.0,29855,2345195.0,20660
,,7902794.0,12579,2188399.0,37454
1.7,6.0,8033876.0,21158,2320641.0,13053
2.8,8.9,8126732.0,27620,2383083.0,25173
,,8277506.0,15448,2198021.0,33075
2.1,6.4,8453255.0,17411,2339395.0,20221
3.0,7.7,8529130.0,29853,2366800.0,20139
,,8651034.0,19706,2239626.0,25694
2.2,3.2,8840988.0,24387,2311966.0,25694
3.1,9.3,8918721.0,34762,2448589.0,26228
,,8777023.0,11833,2259622.0,32155
2.5,5.7,8993348.0,25481,2389000.0,29464
3.5,6.3,9085319.0,27791,2401713.0,28706
,,8855202.0,27455,2268030.0,35914
3.0,4.1,9123705.0,34289,2361876.0,31917
4.2,11.9,9228843.0,33484,2536867.0,26001
,,8952897.0,21601,2280539.0,30530
3.5,10.1,9268365.0,30804,2510883.0,26312
4.6,10.3,9367048.0,30681,2514740.0,32897
,,9036582.0,19483,2374728.0,42892
3.7,2.2,9369541.0,33253,2425993.0,45953
5.0,4.5,9489640.0,28066,2482179.0,33821
,,9136041.0,18233,2336090.0,30037
4.0,6.1,9497501.0,34409,2478602.0,31960
4.7,10.5,9563832.0,34507,2581056.0,38516
,,9226630.0,17998,2326070.0,33782
3.7,7.8,9570547.0,27052,2508396.0,41848
4.4,10.4,9634192.0,40218,2566842.0,31116
,,9305784.0,24574,2391261.0,29548
3.8,6.1,9656252.0,39164,2536624.0,45738
4.5,5.2,9720210.0,31172,2516447.0,32348
,,9381004.0,19378,2442774.0,35745
2.6,1.3,9626125.0,65187,2474560.0,29978
4.1,4.4,9766045.0,54298,2549227.0,31200
,,9401844.0,27746,2456372.0,40550
2.7,3.8,9652161.0,51629,2549004.0,39991
3.5,6.9,9731681.0,51852,2625589.0,27822
,,9428320.0,17562,2509119.0,39752
2.1,6.1,9630472.0,50106,2662447.0,44347
3.1,5.7,9722152.0,50349,2651891.0,28519
,,9561062.0,21910,2392883.0,24181
2.0,7.1,9755774.0,60382,2563573.0,32132
3.5,15.0,9894735.0,45967,2752506.0,28517
,,9624859.0,30462,2480667.0,27055
2.7,5.5,9883943.0,61851,2618326.0,36656
4.5,15.4,10057320.0,46352,2863788.0,34022
,,9739896.0,35436,2476666.0,30301
3.1,8.2,10043706.0,60944,2680570.0,42346
4.6,16.8,10191082.0,51348,2893385.0,32717
,,9833955.0,39366,2628480.0,36567
3.5,2.7,10180871.0,50050,2699941.0,42805
5.0,7.3,10323136.0,50768,2820628.0,30552
,,9908832.0,20826,2666415.0,51379
3.5,0.5,10251385.0,58551,2679925.0,49144
5.1,5.7,10418155.0,51726,2817192.0,34043
,,9969311.0,20378,2563399.0,36720
3.5,4.8,10314449.0,60867,2686176.0,42926
5.4,9.1,10504881.0,53101,2796816.0,37461
,,10077169.0,36182,2584728.0,32672
3.1,7.4,10393453.0,63048,2775523.0,39745
4.7,11.9,10549870.0,45281,2893000.0,39102
,,10115997.0,25835,2653036.0,33259
2.7,5.7,10388901.0,63402,2803290.0,36021
4.6,11.2,10580796.0,63517,2949834.0,31422
,,10162757.0,33119,2681195.0,30592
2.5,3.0,10413010.0,76720,2761752.0,32472
4.0,9.5,10568061.0,65614,2935127.0,38463
,,10223472.0,41882,2670421.0,26049
2.4,5.0,10470977.0,58009,2803478.0,37111
4.1,7.4,10646450.0,54810,2868986.0,52724

     kernel (#)  ntask     proc      thr        proc    stdev         thr    stdev
                        speedup  speedup       pgf/s                pgf/s         
   4.16-rc5 (1)      1                       586,305      747     587,731    1,766
    lu-zone (2)      1     4.0%     3.4%     609,505    1,562     608,007    1,169
4.16-rc5-nz (3)      1     8.0%     5.9%     633,145    1,752     622,690    1,286

   4.16-rc5 (1)      2                     1,131,428    7,396   1,022,890    7,333
    lu-zone (2)      2    -1.0%    -0.3%   1,119,974    2,557   1,020,102    5,706
4.16-rc5-nz (3)      2     3.0%     3.3%   1,165,004    6,232   1,056,689    6,411

   4.16-rc5 (1)      3                     1,590,413    6,411   1,346,900    8,924
    lu-zone (2)      3    -0.7%     1.0%   1,579,816    7,216   1,360,376    4,418
4.16-rc5-nz (3)      3     2.3%     3.4%   1,626,925    5,321   1,392,515    8,180

   4.16-rc5 (1)      4                     2,064,476    5,034   1,656,475   14,713
    lu-zone (2)      4    -1.0%     0.9%   2,043,240    9,069   1,672,036    5,342
4.16-rc5-nz (3)      4     1.2%     3.9%   2,089,959    8,287   1,721,614    7,796

   4.16-rc5 (1)      5                     2,486,090   11,178   1,878,085   15,286
    lu-zone (2)      5    -0.1%     1.1%   2,483,021   15,100   1,898,459    9,295
4.16-rc5-nz (3)      5     1.3%     4.0%   2,517,602   13,717   1,952,995    7,481

   4.16-rc5 (1)      6                     2,869,756    9,194   2,058,398   20,580
    lu-zone (2)      6     0.4%     3.5%   2,882,220   20,583   2,129,444    9,689
4.16-rc5-nz (3)      6     2.4%     6.0%   2,937,618   14,126   2,182,859    9,650

   4.16-rc5 (1)      7                     3,242,589   15,354   2,231,977   20,188
    lu-zone (2)      7     0.9%     3.2%   3,270,796   15,124   2,303,780    6,607
4.16-rc5-nz (3)      7     2.0%     6.7%   3,306,528   17,683   2,381,279   16,507

   4.16-rc5 (1)      8                     3,598,209   10,764   2,361,819   13,508
    lu-zone (2)      8     1.2%     4.5%   3,642,407   14,893   2,469,191   16,250
4.16-rc5-nz (3)      8     2.0%     8.1%   3,671,834   17,501   2,552,786   12,112

   4.16-rc5 (1)      9                     3,974,345   12,605   2,511,565   31,986
    lu-zone (2)      9     2.3%     4.8%   4,067,553   11,069   2,632,608    8,158
4.16-rc5-nz (3)      9     2.5%     9.8%   4,073,111   12,463   2,758,075   31,432

   4.16-rc5 (1)     10                     4,333,026   12,187   2,636,914   15,064
    lu-zone (2)     10     2.4%     5.8%   4,435,852   21,691   2,789,949   16,399
4.16-rc5-nz (3)     10     3.2%    10.3%   4,470,666   23,663   2,907,263   15,052

   4.16-rc5 (1)     11                     4,932,423   12,183   2,675,769   23,924
    lu-zone (2)     11     2.7%     3.6%   5,064,666   18,600   2,771,476   22,438
4.16-rc5-nz (3)     11     3.6%     7.9%   5,110,434   21,459   2,888,419   18,180

   4.16-rc5 (1)     12                     5,461,255   14,704   2,631,232   24,390
    lu-zone (2)     12     1.7%     2.5%   5,554,957   20,978   2,697,554   19,369
4.16-rc5-nz (3)     12     3.1%     5.8%   5,629,143   22,781   2,782,902   20,346

   4.16-rc5 (1)     13                     5,924,367   11,835   2,445,607   25,821
    lu-zone (2)     13     1.4%     4.9%   6,004,723   19,070   2,566,547   26,031
4.16-rc5-nz (3)     13     2.9%     8.4%   6,094,087   17,676   2,651,793   20,050

   4.16-rc5 (1)     14                     6,381,611   16,791   2,277,611   39,557
    lu-zone (2)     14     1.2%     4.4%   6,459,693   18,869   2,377,795   25,093
4.16-rc5-nz (3)     14     2.4%    12.4%   6,534,837   24,990   2,560,085   12,638

   4.16-rc5 (1)     15                     6,804,737   13,653   2,232,121   19,408
    lu-zone (2)     15     1.1%     4.8%   6,881,730   18,995   2,338,868   18,922
4.16-rc5-nz (3)     15     2.4%    12.5%   6,970,318   28,677   2,510,594   25,890

   4.16-rc5 (1)     16                     7,197,145   17,499   2,313,168   16,694
    lu-zone (2)     16     1.2%     4.5%   7,287,072   28,727   2,418,232   23,120
4.16-rc5-nz (3)     16     2.6%     7.6%   7,383,613   17,991   2,489,382   28,385

   4.16-rc5 (1)     17                     7,550,498   15,101   2,226,427   24,768
    lu-zone (2)     17     1.6%     4.4%   7,667,641   24,305   2,324,675   16,265
4.16-rc5-nz (3)     17     2.8%     5.3%   7,761,917   29,854   2,345,195   20,659

   4.16-rc5 (1)     18                     7,902,794   12,578   2,188,399   37,453
    lu-zone (2)     18     1.7%     6.0%   8,033,876   21,158   2,320,641   13,053
4.16-rc5-nz (3)     18     2.8%     8.9%   8,126,732   27,619   2,383,083   25,172

   4.16-rc5 (1)     19                     8,277,506   15,448   2,198,021   33,074
    lu-zone (2)     19     2.1%     6.4%   8,453,255   17,411   2,339,395   20,220
4.16-rc5-nz (3)     19     3.0%     7.7%   8,529,130   29,852   2,366,800   20,139

   4.16-rc5 (1)     20                     8,651,034   19,705   2,239,626   25,694
    lu-zone (2)     20     2.2%     3.2%   8,840,988   24,387   2,311,966   25,693
4.16-rc5-nz (3)     20     3.1%     9.3%   8,918,721   34,761   2,448,589   26,227

   4.16-rc5 (1)     21                     8,777,023   11,833   2,259,622   32,154
    lu-zone (2)     21     2.5%     5.7%   8,993,348   25,480   2,389,000   29,464
4.16-rc5-nz (3)     21     3.5%     6.3%   9,085,319   27,790   2,401,713   28,706

   4.16-rc5 (1)     22                     8,855,202   27,455   2,268,030   35,914
    lu-zone (2)     22     3.0%     4.1%   9,123,705   34,288   2,361,876   31,917
4.16-rc5-nz (3)     22     4.2%    11.9%   9,228,843   33,483   2,536,867   26,000

   4.16-rc5 (1)     23                     8,952,897   21,601   2,280,539   30,530
    lu-zone (2)     23     3.5%    10.1%   9,268,365   30,803   2,510,883   26,312
4.16-rc5-nz (3)     23     4.6%    10.3%   9,367,048   30,681   2,514,740   32,896

   4.16-rc5 (1)     24                     9,036,582   19,482   2,374,728   42,891
    lu-zone (2)     24     3.7%     2.2%   9,369,541   33,253   2,425,993   45,952
4.16-rc5-nz (3)     24     5.0%     4.5%   9,489,640   28,066   2,482,179   33,820

   4.16-rc5 (1)     25                     9,136,041   18,232   2,336,090   30,036
    lu-zone (2)     25     4.0%     6.1%   9,497,501   34,408   2,478,602   31,959
4.16-rc5-nz (3)     25     4.7%    10.5%   9,563,832   34,506   2,581,056   38,516

   4.16-rc5 (1)     26                     9,226,630   17,998   2,326,070   33,782
    lu-zone (2)     26     3.7%     7.8%   9,570,547   27,052   2,508,396   41,848
4.16-rc5-nz (3)     26     4.4%    10.4%   9,634,192   40,217   2,566,842   31,115

   4.16-rc5 (1)     27                     9,305,784   24,573   2,391,261   29,547
    lu-zone (2)     27     3.8%     6.1%   9,656,252   39,164   2,536,624   45,738
4.16-rc5-nz (3)     27     4.5%     5.2%   9,720,210   31,171   2,516,447   32,347

   4.16-rc5 (1)     28                     9,381,004   19,377   2,442,774   35,745
    lu-zone (2)     28     2.6%     1.3%   9,626,125   65,187   2,474,560   29,977
4.16-rc5-nz (3)     28     4.1%     4.4%   9,766,045   54,298   2,549,227   31,199

   4.16-rc5 (1)     29                     9,401,844   27,746   2,456,372   40,549
    lu-zone (2)     29     2.7%     3.8%   9,652,161   51,629   2,549,004   39,990
4.16-rc5-nz (3)     29     3.5%     6.9%   9,731,681   51,852   2,625,589   27,821

   4.16-rc5 (1)     30                     9,428,320   17,561   2,509,119   39,752
    lu-zone (2)     30     2.1%     6.1%   9,630,472   50,106   2,662,447   44,347
4.16-rc5-nz (3)     30     3.1%     5.7%   9,722,152   50,348   2,651,891   28,518

   4.16-rc5 (1)     31                     9,561,062   21,909   2,392,883   24,180
    lu-zone (2)     31     2.0%     7.1%   9,755,774   60,381   2,563,573   32,132
4.16-rc5-nz (3)     31     3.5%    15.0%   9,894,735   45,966   2,752,506   28,516

   4.16-rc5 (1)     32                     9,624,859   30,462   2,480,667   27,055
    lu-zone (2)     32     2.7%     5.5%   9,883,943   61,850   2,618,326   36,655
4.16-rc5-nz (3)     32     4.5%    15.4%  10,057,320   46,352   2,863,788   34,021

   4.16-rc5 (1)     33                     9,739,896   35,435   2,476,666   30,301
    lu-zone (2)     33     3.1%     8.2%  10,043,706   60,943   2,680,570   42,346
4.16-rc5-nz (3)     33     4.6%    16.8%  10,191,082   51,348   2,893,385   32,717

   4.16-rc5 (1)     34                     9,833,955   39,366   2,628,480   36,567
    lu-zone (2)     34     3.5%     2.7%  10,180,871   50,050   2,699,941   42,804
4.16-rc5-nz (3)     34     5.0%     7.3%  10,323,136   50,767   2,820,628   30,551

   4.16-rc5 (1)     35                     9,908,832   20,826   2,666,415   51,379
    lu-zone (2)     35     3.5%     0.5%  10,251,385   58,551   2,679,925   49,143
4.16-rc5-nz (3)     35     5.1%     5.7%  10,418,155   51,726   2,817,192   34,042

   4.16-rc5 (1)     36                     9,969,311   20,377   2,563,399   36,720
    lu-zone (2)     36     3.5%     4.8%  10,314,449   60,867   2,686,176   42,925
4.16-rc5-nz (3)     36     5.4%     9.1%  10,504,881   53,100   2,796,816   37,461

   4.16-rc5 (1)     37                    10,077,169   36,182   2,584,728   32,672
    lu-zone (2)     37     3.1%     7.4%  10,393,453   63,048   2,775,523   39,745
4.16-rc5-nz (3)     37     4.7%    11.9%  10,549,870   45,280   2,893,000   39,102

   4.16-rc5 (1)     38                    10,115,997   25,835   2,653,036   33,259
    lu-zone (2)     38     2.7%     5.7%  10,388,901   63,402   2,803,290   36,020
4.16-rc5-nz (3)     38     4.6%    11.2%  10,580,796   63,516   2,949,834   31,421

   4.16-rc5 (1)     39                    10,162,757   33,118   2,681,195   30,591
    lu-zone (2)     39     2.5%     3.0%  10,413,010   76,719   2,761,752   32,471
4.16-rc5-nz (3)     39     4.0%     9.5%  10,568,061   65,614   2,935,127   38,463

   4.16-rc5 (1)     40                    10,223,472   41,882   2,670,421   26,049
    lu-zone (2)     40     2.4%     5.0%  10,470,977   58,008   2,803,478   37,111
4.16-rc5-nz (3)     40     4.1%     7.4%  10,646,450   54,810   2,868,986   52,724

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux