linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
To: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Subject: Re: zram: per-cpu compression streams
Date: Wed, 27 Apr 2016 17:54:08 +0900	[thread overview]
Message-ID: <20160427085408.GA1108@swordfish> (raw)
In-Reply-To: <20160427072954.GA29816@bbox>


Hello,

more tests. I did only 8streams vs per-cpu this time. the changes
to the test are:
-- mem-hogger now per-faults pages in parallel with fio
-- mem-hogger alloc size increased from 3GB to 4GB.

the system couldn't survive 4GB/4GB zram(buffer_compress_percentage=11)/mem-hogger
split (OOM), so I executed the 3GB/4GB test (close to system's OOM edge).

-- 4 GB x86_64
-- 3 GB zram lzo

firts, the mm_stat.    <num_writes / num_recompressions>

8 streams (base kernel):

3221225472 3221225472 3221225472        0 3221229568        0        0 < 2752460/       0>
3221225472 3221225472 3221225472        0 3221233664        0        0 < 5504124/       0>
3221225472 2912157607 2952802304        0 2952826880        0       81 < 8253369/       0>
3221225472 2893479936 2899120128        0 2899136512        0      147 <11003056/       0>
3221217280 2886040814 2899103744        0 2899128320        0       26 <13748450/       0>
3221225472 2880045056 2885693440        0 2885718016        0      180 <16503120/       0>
3221213184 2877431364 2883756032        0 2883809280        0      132 <19259891/       0>
3221225472 2873229312 2876096512        0 2876133376        0       16 <22016512/       0>
3221213184 2870728008 2871693312        0 2871726080        0       24 <24768909/       0>
2899095552 2899095552 2899095552        0 2899132416    78643        0 <27523600/       0>

per-cpu:

3221225472 3221225472 3221225472        0 3221229568        0        0 < 2752460/    8180>
3221225472 3221225472 3221225472        0 3221233664        0        0 < 5504124/   10523>
3221225472 2912157607 2952802304        0 2952814592        0      117 < 8253369/    9451>
3221225472 2893479936 2899120128        0 2899136512        0      129 <11003056/    9395>
3221217280 2886040814 2899103744        0 2899128320        0       51 <13748450/   10879>
3221225472 2880045056 2885693440        0 2885718016        0      126 <16503120/   10300>
3221213184 2877431364 2883772416        0 2883801088        0      252 <19259891/   10509>
3221225472 2873229312 2876100608        0 2876133376        0       14 <22016512/   11081>
3221213184 2870728008 2871693312        0 2871730176        0       54 <24768909/   10770>
2899095552 2899095552 2899095552        0 2899136512    78643        0 <27523600/   10231>


mem-hogger pre-fault times

8 streams (base kernel):

[431] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f3f5d38a010 <+   6.031550428>
[470] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7fa29d414010 <+   5.242295692>
[514] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f4a7eac8010 <+   5.485469454>
[563] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f07da76b010 <+   5.563647658>
[619] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7ff5efc26010 <+   5.516866208>
[681] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f8fb896d010 <+   5.535275748>
[751] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7fb2ac6fa010 <+   4.594626366>
[825] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f355f9a0010 <+   5.075849029>
[905] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7feb16715010 <+   4.696363680>
[991] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f3a1b9f4010 <+   5.292365453>


per-cpu:

[413] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7fe8058f5010 <+   5.513944292>
[451] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f65fe753010 <+   4.742384977>
[494] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7fb99a05c010 <+   5.394711696>
[542] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f0d61c81010 <+   5.021011664>
[598] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f9abdeb6010 <+   5.094722019>
[660] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7fb192ae9010 <+   4.943961060>
[728] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f7313aeb010 <+   5.437872456>
[802] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f25ffdeb010 <+   5.422829590>
[881] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f60daa8e010 <+   4.806425351>
[970] single-alloc:  INFO: Allocated 0x100000000 bytes at address 0x7f384cf04010 <+   4.982513395>


so, pre-fault time range is somewhat big. for example, from 4.696363680 to 6.031550428 seconds.



fio
                8 streams        per-cpu
===========================================
#jobs1                         	                
READ:           2507.8MB/s	 2526.4MB/s
READ:           2043.1MB/s	 1970.6MB/s
WRITE:          127100KB/s	 139160KB/s
WRITE:          724488KB/s	 733440KB/s
READ:           534624KB/s	 540967KB/s
WRITE:          534569KB/s	 540912KB/s
READ:           471165KB/s	 477459KB/s
WRITE:          471233KB/s	 477527KB/s
#jobs2                         	                
READ:           8041.1MB/s	 7866.9MB/s
READ:           6751.7MB/s	 6692.9MB/s
WRITE:          268372KB/s	 268269KB/s
WRITE:          1197.5MB/s	 1331.3MB/s
READ:           997.75MB/s	 1057.6MB/s
WRITE:          997.91MB/s	 1057.7MB/s
READ:           934518KB/s	 992852KB/s
WRITE:          932382KB/s	 990582KB/s
#jobs3                         	                
READ:           13318MB/s	 13454MB/s
READ:           11463MB/s	 11491MB/s
WRITE:          449903KB/s	 448791KB/s
WRITE:          1582.8MB/s	 1782.3MB/s
READ:           1337.5MB/s	 1449.1MB/s
WRITE:          1335.6MB/s	 1447.2MB/s
READ:           1241.3MB/s	 1345.7MB/s
WRITE:          1239.6MB/s	 1343.6MB/s
#jobs4                         	                
READ:           19948MB/s	 20013MB/s
READ:           17732MB/s	 17479MB/s
WRITE:          630690KB/s	 495078KB/s
WRITE:          1843.2MB/s	 2226.9MB/s
READ:           1603.4MB/s	 1846.8MB/s
WRITE:          1599.4MB/s	 1842.2MB/s
READ:           1547.7MB/s	 1740.7MB/s
WRITE:          1549.2MB/s	 1742.4MB/s
#jobs5                         	                
READ:           18800MB/s	 4792.6MB/s
READ:           16659MB/s	 16898MB/s
WRITE:          777796KB/s	 721363KB/s
WRITE:          1771.9MB/s	 2138.7MB/s
READ:           1517.9MB/s	 1837.8MB/s
WRITE:          1512.6MB/s	 1831.5MB/s
READ:           1501.4MB/s	 1784.1MB/s
WRITE:          1500.5MB/s	 1783.9MB/s
#jobs6                         	                
READ:           20827MB/s	 20571MB/s
READ:           19382MB/s	 19505MB/s
WRITE:          850618KB/s	 776148KB/s
WRITE:          1886.2MB/s	 2127.7MB/s
READ:           1685.3MB/s	 1864.8MB/s
WRITE:          1682.4MB/s	 1860.8MB/s
READ:           1598.3MB/s	 1727.9MB/s
WRITE:          1593.5MB/s	 1722.6MB/s
#jobs7                         	                
READ:           21547MB/s	 21000MB/s
READ:           18814MB/s	 18715MB/s
WRITE:          1008.5MB/s	 991.56MB/s
WRITE:          1922.5MB/s	 2232.9MB/s
READ:           1640.3MB/s	 1795.2MB/s
WRITE:          1641.3MB/s	 1796.4MB/s
READ:           1578.2MB/s	 1763.2MB/s
WRITE:          1569.5MB/s	 1753.5MB/s
#jobs8                         	                
READ:           20277MB/s	 20916MB/s
READ:           17952MB/s	 18340MB/s
WRITE:          1186.1MB/s	 1170.6MB/s
WRITE:          1955.8MB/s	 2347.6MB/s
READ:           1686.5MB/s	 1936.7MB/s
WRITE:          1688.3MB/s	 1938.8MB/s
READ:           1610.3MB/s	 1894.7MB/s
WRITE:          1606.6MB/s	 1890.4MB/s
#jobs9                         	                
READ:           20108MB/s	 19361MB/s
READ:           18012MB/s	 18177MB/s
WRITE:          1355.1MB/s	 1325.7MB/s
WRITE:          1948.5MB/s	 2305.6MB/s
READ:           1662.4MB/s	 1892.6MB/s
WRITE:          1661.9MB/s	 1891.5MB/s
READ:           1605.5MB/s	 1812.4MB/s
WRITE:          1604.2MB/s	 1810.7MB/s
#jobs10                        	                
READ:           20039MB/s	 19455MB/s
READ:           18028MB/s	 17716MB/s
WRITE:          1465.3MB/s	 1486.7MB/s
WRITE:          2007.2MB/s	 2317.5MB/s
READ:           1755.3MB/s	 2005.9MB/s
WRITE:          1754.3MB/s	 2003.1MB/s
READ:           1691.2MB/s	 1874.8MB/s
WRITE:          1694.7MB/s	 1877.7MB/s


perf stat

                             8 streams                     per-cpu
====================================================================================
jobs1
stalled-cycles-frontend      56,052,305,338 (  55.05%)	   58,803,628,418 (  55.33%)
stalled-cycles-backend       24,355,709,967 (  23.92%)	   25,413,107,301 (  23.91%)
instructions                 96,175,143,640 (    0.94)	  100,364,109,185 (    0.94)
branches                     18,009,998,853 ( 559.201)	   18,513,273,860 ( 550.828)
branch-misses                   111,500,123 (   0.62%)	      106,011,616 (   0.57%)
jobs2
stalled-cycles-frontend     126,012,750,354 (  59.31%)	  123,465,054,991 (  57.62%)
stalled-cycles-backend       61,866,277,568 (  29.12%)	   58,959,838,855 (  27.52%)
instructions                183,736,567,135 (    0.86)	  193,832,846,843 (    0.90)
branches                     34,879,279,141 ( 506.137)	   36,700,776,757 ( 530.136)
branch-misses                   175,122,665 (   0.50%)	      165,057,491 (   0.45%)
jobs3
stalled-cycles-frontend     175,428,933,301 (  60.40%)	  160,530,802,385 (  58.59%)
stalled-cycles-backend       87,409,032,068 (  30.10%)	   76,093,143,994 (  27.77%)
instructions                231,949,985,071 (    0.80)	  229,875,149,073 (    0.84)
branches                     44,034,175,160 ( 423.325)	   43,578,595,543 ( 443.250)
branch-misses                   237,974,300 (   0.54%)	      216,380,848 (   0.50%)
jobs4
stalled-cycles-frontend     265,519,049,536 (  64.46%)	  221,049,841,649 (  61.81%)
stalled-cycles-backend      146,538,881,296 (  35.57%)	  113,774,053,039 (  31.82%)
instructions                298,241,854,695 (    0.72)	  278,000,866,874 (    0.78)
branches                     59,531,800,053 ( 400.919)	   55,096,944,109 ( 427.816)
branch-misses                   285,108,083 (   0.48%)	      260,972,185 (   0.47%)
jobs5
stalled-cycles-frontend     290,281,266,141 (  64.97%)	  260,946,337,232 (  61.99%)
stalled-cycles-backend      161,884,390,707 (  36.23%)	  137,154,776,973 (  32.58%)
instructions                326,306,594,233 (    0.73)	  334,011,271,525 (    0.79)
branches                     63,904,071,806 ( 398.348)	   65,664,365,815 ( 434.393)
branch-misses                   293,793,049 (   0.46%)	      279,794,621 (   0.43%)
jobs6
stalled-cycles-frontend     344,523,942,841 (  65.53%)	  287,955,119,151 (  61.88%)
stalled-cycles-backend      193,660,445,380 (  36.84%)	  150,866,799,639 (  32.42%)
instructions                381,794,200,792 (    0.73)	  375,547,185,965 (    0.81)
branches                     74,623,783,129 ( 394.258)	   73,649,248,349 ( 441.644)
branch-misses                   358,005,680 (   0.48%)	      306,143,187 (   0.42%)
jobs7
stalled-cycles-frontend     369,290,213,422 (  64.74%)	  319,117,228,349 (  61.21%)
stalled-cycles-backend      206,236,039,426 (  36.16%)	  168,934,948,019 (  32.40%)
instructions                427,549,938,405 (    0.75)	  429,752,151,831 (    0.82)
branches                     82,174,130,236 ( 400.051)	   83,110,458,913 ( 442.306)
branch-misses                   354,517,174 (   0.43%)	      332,430,584 (   0.40%)
jobs8
stalled-cycles-frontend     409,541,894,683 (  66.76%)	  349,581,824,315 (  62.51%)
stalled-cycles-backend      229,256,571,129 (  37.37%)	  181,622,273,772 (  32.47%)
instructions                437,816,833,182 (    0.71)	  450,389,502,564 (    0.81)
branches                     84,525,812,473 ( 382.128)	   87,501,121,276 ( 434.210)
branch-misses                   372,309,759 (   0.44%)	      349,523,647 (   0.40%)
jobs9
stalled-cycles-frontend     442,628,204,560 (  65.90%)	  380,475,695,919 (  61.52%)
stalled-cycles-backend      251,927,332,399 (  37.51%)	  199,303,426,179 (  32.22%)
instructions                491,437,868,336 (    0.73)	  511,514,729,028 (    0.83)
branches                     93,730,386,271 ( 386.978)	   98,645,937,110 ( 442.304)
branch-misses                   401,101,757 (   0.43%)	      368,882,924 (   0.37%)
jobs10
stalled-cycles-frontend     478,576,939,331 (  67.41%)	  408,498,109,428 (  63.43%)
stalled-cycles-backend      274,043,625,756 (  38.60%)	  219,162,314,972 (  34.03%)
instructions                495,607,125,031 (    0.70)	  505,149,872,644 (    0.78)
branches                     95,885,616,294 ( 374.483)	   99,094,367,930 ( 426.624)
branch-misses                   418,267,387 (   0.44%)	      392,516,508 (   0.40%)


perf reported execution time

                       8 streams        per-cpu
====================================================
seconds elapsed        51.128322985	47.600230868
seconds elapsed        49.309895468	48.291538090
seconds elapsed        47.075673742	46.068406557
seconds elapsed        47.816933840	52.966896478
seconds elapsed        54.345548549	50.918853799
seconds elapsed        58.613938093	58.130571913
seconds elapsed        62.799745992	60.086779664
seconds elapsed        65.664854260	61.414515686
seconds elapsed        71.340920175	67.717224950
seconds elapsed        74.169664807	69.485210016


	-ss

  parent reply	other threads:[~2016-04-27  8:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-23  8:12 zram: per-cpu compression streams Sergey Senozhatsky
2016-03-24 23:41 ` Minchan Kim
2016-03-25  1:47   ` Sergey Senozhatsky
2016-03-28  3:21     ` Minchan Kim
2016-03-30  8:34       ` Sergey Senozhatsky
2016-03-30 22:12         ` Minchan Kim
2016-03-31  1:26           ` Sergey Senozhatsky
2016-03-31  5:53             ` Minchan Kim
2016-03-31  6:34               ` Sergey Senozhatsky
2016-04-01 15:38                 ` Sergey Senozhatsky
2016-04-04  0:27                   ` Minchan Kim
2016-04-04  1:17                     ` Sergey Senozhatsky
2016-04-18  7:57                       ` Sergey Senozhatsky
2016-04-19  8:00                         ` Minchan Kim
2016-04-19  8:08                           ` Sergey Senozhatsky
2016-04-26 11:23                           ` Sergey Senozhatsky
2016-04-27  7:29                             ` Minchan Kim
2016-04-27  7:43                               ` Sergey Senozhatsky
2016-04-27  7:55                                 ` Minchan Kim
2016-04-27  8:10                                   ` Sergey Senozhatsky
2016-04-27  8:54                               ` Sergey Senozhatsky [this message]
2016-04-27  9:01                                 ` Sergey Senozhatsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160427085408.GA1108@swordfish \
    --to=sergey.senozhatsky.work@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=minchan@kernel.org \
    --cc=sergey.senozhatsky@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).