will-it-scale https://github.com/antonblanchard/will-it-scale patched with additional test cases and removed Linux-specific ones FreeBSD r363681 + assorted WIP patches root on ufs, /tmp on tmpfs DragonFlyBSD f9d29536fef701df4f611369700850fb39f3f6c5 root on hammer2, /tmp on tmpfs NetBSD as of Jul 18, top kernel commit: riastradh Wed Jul 29 14:23:59 2020 +0000 Issue three more swaps to save eight stores. root on ufs, /tmp on tmpfs Hardware: 24 core vms (1 physical core per 1 vcpu) on Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz 24GB RAM Running on top of Ubuntu 20.04. All systems had to get modified to stop issuing rdtscp on timestamp updates. Per-os notes: FreeBSD: sysctl vfs.timestamp_precision=1 DragonflyBSD: patched to compile without retpoline; disabled invariants; sysctl vfs.timestamp_precision=1 NetBSD: disabled DIAGNOSTIC and retpoline; does not support vfs.timestamp_precision=1, thus vfs_timestamp got patched to use getnanotime The last 3 columns represent relative performance (%). +231 is 231% more (or the total is 331% of the original) FvD - FreeBSD versus DragonFlyBSD FvN - FreeBSD versus NetBSD DvN - DragonFlyBSD versus NetBSD t - processes or threads c - number of workers spawned test t c FreeBSD DragonFlyBSD NetBSD FvD FvN DvN access1 p 01 4055350 1217433 1721941 +233 +135 -30 access1 t 01 4080067 1259273 1724079 +224 +136 -27 access1 p 24 82826935 8126213 4501719 +919 +1739 +80 access1 t 24 80168751 7754596 3872893 +933 +1969 +100 access2 p 01 4036529 1211496 1718265 +233 +134 -30 access2 t 01 4074684 1259979 1730852 +223 +135 -28 access2 p 24 5377543 3588671 3646422 +49 +47 -2 access2 t 24 5402289 3716829 3385153 +45 +59 +9 context_switch1 p 01 495760 1649996 159376 -70 +211 +935 context_switch1 t 01 471860 1386943 141402 -66 +233 +880 context_switch1 p 24 12682188 7704454 1472993 +64 +760 +423 context_switch1 t 24 13164801 10885893 2119139 +20 +521 +413 brk1 p 01 8219928 N/A 4378359 N/A +87 N/A brk1 t 01 4787361 N/A 4292787 N/A +11 N/A brk1 p 24 12490075 N/A 803922 N/A +1453 N/A brk1 t 24 N/A N/A 2013414 N/A N/A N/A dup1 p 01 6269660 4960325 4908960 +26 +27 +1 dup1 t 01 5894491 4905701 4428627 +20 +33 +10 dup1 p 24 123679794 116398167 116358394 +6 +6 +0 dup1 t 24 2330009 265408 981562 +777 +137 -73 fstat1 p 01 7460407 6274125 4275874 +18 +74 +46 fstat1 t 01 7381341 6320581 4234259 +16 +74 +49 fstat1 p 24 148203582 149907702 101523036 -2 +45 +47 fstat1 t 24 145857647 147507351 98206813 -2 +48 +50 getppid1 p 01 18377495 15112133 15355982 +21 +19 -2 getppid1 t 01 19301249 15207483 15938822 +26 +21 -5 getppid1 p 24 394041695 359143941 375301294 +9 +4 -5 getppid1 t 24 393497775 352487849 378610425 +11 +3 -7 lock1 p 01 4732206 5558512 4690046 -15 +0 +18 lock1 t 01 4706971 5232500 4313515 -11 +9 +21 lock1 p 24 69247350 67834753 2167695 +2 +3094 +3029 lock1 t 24 76931744 65244644 2047694 +17 +3656 +3086 lock2 p 01 4727294 5530356 4640557 -15 +1 +19 lock2 t 01 4703857 4896717 4304711 -4 +9 +13 lock2 p 24 14451 2013123 128535 -100 -89 +1466 lock2 t 24 1699393 2609704 2035859 -35 -17 +28 lseek1 p 01 11758944 9173317 7124309 +28 +65 +28 lseek1 t 01 11725493 9179888 6401962 +27 +83 +43 lseek1 p 24 199287423 214793572 162776814 -8 +22 +31 lseek1 t 24 221430253 212059310 153523480 +4 +44 +38 lseek2 p 01 11706298 9165221 6770006 +27 +72 +35 lseek2 t 01 11362672 9140873 6668375 +24 +70 +37 lseek2 p 24 188390147 213895319 7709725 -12 +2343 +2674 lseek2 t 24 239200027 211347376 7570504 +13 +3059 +2691 mmap1 p 01 3667470 2307866 2603059 +58 +40 -12 mmap1 t 01 1681001 2363681 2519460 -29 -34 -7 mmap1 p 24 6398905 54511607 50291447 -89 -88 +8 mmap1 t 24 1289122 1169613 626866 +10 +105 +86 mmap2 p 01 1563272 353494 1176773 +342 +32 -70 mmap2 t 01 1600302 347827 1100014 +360 +45 -69 mmap2 p 24 3092105 8460694 26193547 -64 -89 -68 mmap2 t 24 1021944 348971 514044 +192 +98 -33 open1 p 01 2050289 857828 1255316 +139 +63 -32 open1 t 01 2060086 842263 1232955 +144 +67 -32 open1 p 24 8138198 4048298 4329407 +101 +87 -7 open1 t 24 1790767 197167 1023098 +808 +75 -81 open2 p 01 1855245 719835 1153803 +157 +60 -38 open2 t 01 1873540 712861 1121891 +162 +66 -37 open2 p 24 8082844 4075357 4577977 +98 +76 -11 open2 t 24 1622802 198209 971021 +718 +67 -80 open3 p 01 2055648 861828 1256161 +138 +63 -32 open3 t 01 2045971 838273 1225941 +144 +66 -32 open3 p 24 1592985 1120505 1040200 +42 +53 +7 open3 t 24 1318139 195628 987633 +573 +33 -81 openro3 p 01 2137897 869776 1263720 +145 +69 -32 openro3 t 01 2184630 849125 1243831 +157 +75 -32 openro3 p 24 2916881 1162594 1144935 +150 +154 +1 openro3 t 24 1677807 202920 1006739 +726 +66 -80 page_fault1 p 01 633661 403675 568947 +56 +11 -30 page_fault1 t 01 719166 407301 564317 +76 +27 -28 page_fault1 p 24 6469299 8546107 10257940 -25 -37 -17 page_fault1 t 24 1149140 402846 124492 +185 +823 +223 page_fault2 p 01 598208 320714 510045 +86 +17 -38 page_fault2 t 01 598699 320940 502525 +86 +19 -37 page_fault2 p 24 1503543 6579558 8530931 -78 -83 -23 page_fault2 t 24 1378138 307235 117765 +348 +1070 +160 page_fault3 p 01 9922150 925538 1901918 +972 +421 -52 page_fault3 t 01 10048999 921398 1905312 +990 +427 -52 page_fault3 p 24 137859457 19883127 31391616 +593 +339 -37 page_fault3 t 24 7134738 331575 1649885 +2051 +332 -80 pipe1 p 01 3739761 2674884 3188820 +39 +17 -17 pipe1 t 01 3630927 2564544 2922372 +41 +24 -13 pipe1 p 24 58698635 62576646 59701667 -7 -2 +4 pipe1 t 24 65767332 60800513 55930210 +8 +17 +8 poll1 p 01 9266887 3524807 5059475 +162 +83 -31 poll1 t 01 8566126 3449317 4928787 +148 +73 -31 poll1 p 24 191156659 81725143 121339479 +133 +57 -33 poll1 t 24 7247375 79831611 115800041 -91 -94 -32 poll2 p 01 352046 106002 259600 +232 +35 -60 poll2 t 01 352071 105630 195692 +233 +79 -47 poll2 p 24 7327484 1801340 2710945 +306 +170 -34 poll2 t 24 6172164 474288 N/A +1201 N/A N/A select1 p 01 7596257 2932217 4401562 +159 +72 -34 select1 t 01 7329536 2884748 4122386 +154 +77 -31 select1 p 24 155749891 67635751 102303281 +130 +52 -34 select1 t 24 133602047 62864212 98302566 +112 +35 -37 select2 p 01 359095 70349 264177 +410 +35 -74 select2 t 01 359855 69206 197746 +419 +81 -66 select3 p 01 2203046 518241 1554866 +325 +41 -67 select3 t 01 2170291 513641 1232665 +322 +76 -59 select3 p 24 44325379 10930978 24836197 +305 +78 -56 select3 t 24 25167688 2034250 24941943 +1137 +0 -92 posix_semaphore1 p 01 54339368 5283900 5814382 +928 +834 -10 posix_semaphore1 t 01 55319503 5201225 5292777 +963 +945 -2 posix_semaphore1 p 24 1143917964 128385967 136401633 +790 +738 -6 posix_semaphore1 t 24 1159579083 128987677 124455610 +798 +831 +3 pread1 p 01 4793255 3353558 3125669 +42 +53 +7 pread1 t 01 4461544 3569824 2994569 +24 +48 +19 pread1 p 24 91141778 83229794 1161262 +9 +7748 +7067 pread1 t 24 89438307 82436691 1170308 +8 +7542 +6944 pread2 p 01 4428681 3560557 3263533 +24 +35 +9 pread2 t 01 4856163 3556863 2959457 +36 +64 +20 pread2 p 24 5495836 3826911 1097283 +43 +400 +248 pread2 t 24 4971369 4068822 1088230 +22 +356 +273 pread3 p 01 4438485 3180809 3105602 +39 +42 +2 pread3 t 01 4819318 3358190 3097223 +43 +55 +8 pread3 p 24 6701545 3927166 1119973 +70 +498 +250 pread3 t 24 6794526 3608007 1087436 +88 +524 +231 pthread_mutex1 p 01 212352347 234096129 272024233 -10 -22 -14 pthread_mutex1 t 01 37929619 51082882 70140260 -26 -46 -28 pthread_mutex1 p 24 4498213710 5606800555 6270710989 -20 -29 -11 pthread_mutex1 t 24 12624328 606797 4688192 +1980 +169 -88 pthread_mutex2 p 01 213037038 261050408 269083426 -19 -21 -3 pthread_mutex2 t 01 37669010 51092111 72846665 -27 -49 -30 pthread_mutex2 p 24 4522864930 6270941340 6295697715 -28 -29 -1 pthread_mutex2 t 24 782449695 1234654015 1742382110 -37 -56 -30 pwrite1 p 01 4374521 2703986 3046020 +61 +43 -12 pwrite1 t 01 3390181 2728260 2354261 +24 +44 +15 pwrite1 p 24 79103123 53342951 1165807 +48 +6685 +4475 pwrite1 t 24 68224732 62295356 1180577 +9 +5678 +5176 pwrite2 p 01 4410622 2788551 3053403 +58 +44 -9 pwrite2 t 01 4264159 2755943 2391975 +54 +78 +15 pwrite2 p 24 2888593 494755 1129831 +483 +155 -57 pwrite2 t 24 2886208 471896 1211028 +511 +138 -62 pwrite3 p 01 4319287 2731235 3024984 +58 +42 -10 pwrite3 t 01 4293819 2316622 2897127 +85 +48 -21 pwrite3 p 24 2643820 574435 1740012 +360 +51 -67 pwrite3 t 24 2657902 558699 1832865 +375 +45 -70 read1 p 01 3880846 2543858 3315053 +52 +17 -24 read1 t 01 3742323 2719449 2905772 +37 +28 -7 read1 p 24 59709685 57956511 1183736 +3 +4944 +4796 read1 t 24 65556641 56955943 1181929 +15 +5446 +4718 read2 p 01 3700731 2881478 3243823 +28 +14 -12 read2 t 01 3890239 2828019 3059976 +37 +27 -8 read2 p 24 6376014 4242028 1116170 +50 +471 +280 read2 t 24 6036410 4129084 1114959 +46 +441 +270 readseek1 p 01 3220466 2492043 2325104 +29 +38 +7 readseek1 t 01 2934373 2460584 2100882 +19 +39 +17 readseek1 p 24 58974095 54005510 1172396 +9 +4930 +4506 readseek1 t 24 58557172 57400390 1165715 +2 +4923 +4824 readseek2 p 01 3029844 2327669 2127978 +30 +42 +9 readseek2 t 01 3158208 2410379 2113325 +31 +49 +14 readseek2 p 24 4926281 3692003 1099051 +33 +348 +235 readseek2 t 24 4774822 3459457 1095940 +38 +335 +215 readseek3 p 01 3049567 2534404 2304748 +20 +32 +9 readseek3 t 01 3114461 2332307 2164508 +33 +43 +7 readseek3 p 24 6583034 3570066 1088788 +84 +504 +227 readseek3 t 24 6608334 4175568 1098342 +58 +501 +280 sched_yield p 01 9371096 7621027 605728838 +22 -99 -99 sched_yield t 01 9314012 7608356 343764 +22 +2609 +2113 sched_yield p 24 191190388 178298279 14484373726 +7 -99 -99 sched_yield t 24 193616900 177083743 2086889 +9 +9177 +8385 signal1 p 01 793473 1394914 907772 -44 -13 +53 signal1 t 01 692523 1396409 911150 -51 -24 +53 signal1 p 24 16654791 31861821 2284162 -48 +629 +1294 signal1 t 24 683151 2184082 600467 -69 +13 +263 stat1 p 01 3378526 1182265 1700362 +185 +98 -31 stat1 t 01 3415359 1201981 1671332 +184 +104 -29 stat1 p 24 67863943 7590989 4287034 +794 +1483 +77 stat1 t 24 68724173 7973625 3752268 +761 +1731 +112 stat2 p 01 3389167 1197416 1699337 +183 +99 -30 stat2 t 01 3403536 1177983 1665783 +188 +104 -30 stat2 p 24 5371548 4461267 1793868 +20 +199 +148 stat2 t 24 5370791 4500543 1745580 +19 +207 +157 stat4 p 01 2031339 654162 1001973 +210 +102 -35 stat4 t 01 2027031 650841 964561 +211 +110 -33 stat4 p 24 39139778 2734385 3729238 +1331 +949 -27 stat4 t 24 40412111 2650686 3394275 +1424 +1090 -22 unix1 p 01 2427716 1734886 2161901 +39 +12 -20 unix1 t 01 2366712 1688916 2069031 +40 +14 -19 unix1 p 24 48460840 39722338 11785616 +21 +311 +237 unix1 t 24 47860908 37295914 11800336 +28 +305 +216 unlink1 p 01 516109 220886 252906 +133 +104 -13 unlink1 t 01 515071 220415 246939 +133 +108 -11 unlink1 p 24 201192 27388 149378 +634 +34 -82 unlink1 t 24 208140 28381 147640 +633 +40 -81 unlink2 p 01 461958 210720 246618 +119 +87 -15 unlink2 t 01 467382 207613 242904 +125 +92 -15 unlink2 p 24 678260 526882 381085 +28 +77 +38 unlink2 t 24 669952 219909 382599 +204 +75 -43 vfsmix p 01 126936 64146 75075 +97 +69 -15 vfsmix t 01 125255 63013 72218 +98 +73 -13 vfsmix p 24 79874 21078 44435 +278 +79 -53 vfsmix t 24 31924 18407 24790 +73 +28 -26 write1 p 01 3233321 2080776 2698190 +55 +19 -23 write1 t 01 3069870 1987606 2623452 +54 +17 -25 write1 p 24 60658410 49211738 1184921 +23 +5019 +4053 write1 t 24 59989793 43978933 1197378 +36 +4910 +3572 writeseek1 p 01 3024949 1898429 2185635 +59 +38 -14 writeseek1 t 01 2370157 1967864 1801609 +20 +31 +9 writeseek1 p 24 59203521 46233500 1177102 +28 +4929 +3827 writeseek1 t 24 47498914 45675218 1177993 +3 +3932 +3777 writeseek2 p 01 3015619 2083700 2224221 +44 +35 -7 writeseek2 t 01 2810401 1978623 1768828 +42 +58 +11 writeseek2 p 24 1382696 499257 16511 +176 +8274 +2923 writeseek2 t 24 1221260 464654 17393 +162 +6921 +2571 writeseek3 p 01 3069273 2082189 2175807 +47 +41 -5 writeseek3 t 01 2838029 1770781 2077704 +60 +36 -15 writeseek3 p 24 2656865 579229 15529 +358 +17009 +3629 writeseek3 t 24 2577380 559196 15747 +360 +16267 +3451