{"id":1452,"date":"2024-02-03T23:22:30","date_gmt":"2024-02-03T23:22:30","guid":{"rendered":"https:\/\/mvermeulen.org\/perf\/?page_id=1452"},"modified":"2024-02-07T19:13:42","modified_gmt":"2024-02-07T19:13:42","slug":"bork","status":"publish","type":"page","link":"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/bork\/","title":{"rendered":"bork"},"content":{"rendered":"\n<p>bork is a cross-platform file encryption utility written in Java. There is one workload which runs in seconds. Also looks like it is single-threaded<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/systemtime-31.png\" alt=\"\" class=\"wp-image-1563\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/systemtime-31.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/systemtime-31-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/systemtime-31-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>AMD topdown is sparse given how quickly it runs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/amdtopdown-33.png\" alt=\"\" class=\"wp-image-1565\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/amdtopdown-33.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/amdtopdown-33-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/02\/amdtopdown-33-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>AMD metrics shows this is single-threaded and runs in less than a minute. Backend stalls are low and there is little floating point or L2 access.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              41.954\non_cpu               0.042          # 0.67 \/ 16 cores\nutime                14.407\nstime                13.551\nnvcsw                3667           # 86.04%\nnivcsw               595            # 13.96%\ninblock              0              # 0.00\/sec\nonblock              16790088       # 400198.95\/sec\ncpu-clock            27966981919    # 27.967 seconds\ntask-clock           27971618112    # 27.972 seconds\npage faults          165110         # 5902.769\/sec\ncontext switches     4280           # 153.012\/sec\ncpu migrations       319            # 11.404\/sec\nmajor page faults    2              # 0.072\/sec\nminor page faults    165103         # 5902.519\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             36500002265    # 128.750 branches per 1000 inst\nbranch misses        1369450142     # 3.75% branch miss\nconditional          30093082710    # 106.150 conditional branches per 1000 inst\nindirect             189413110      # 0.668 indirect branches per 1000 inst\ncpu-cycles           121264096404   # 0.18 GHz\ninstructions         280489555903   # 2.31 IPC\nslots                246520840950   #\nretiring             108081861429   # 43.8% (43.8%)\n-- ucode             208269074      #     0.1%\n-- fastpath          107873592355   #    43.8%\nfrontend             97172556531    # 39.4% (39.4%)\n-- latency           78129118386    #    31.7%\n-- bandwidth         19043438145    #     7.7%\nbackend              39194677724    # 15.9% (15.9%) low\n-- cpu               9679470926     #     3.9%\n-- memory            29515206798    #    12.0%\nspeculation          2034510364     #  0.8% ( 0.8%) low\n-- branch mispredict 2009213869     #     0.8%\n-- pipeline restart  25296495       #     0.0%\nsmt-contention       36983215       #  0.0% ( 0.0%)\ncpu-cycles           121365883043   # 0.18 GHz\ninstructions         281240028279   # 2.32 IPC\ninstructions         94364096212    # 16.955 l2 access per 1000 inst\nl2 hit from l1       1517135255     # 5.84% l2 miss\nl2 miss from l1      34263921       #\nl2 hit from l2 pf    23599948       #\nl3 hit from l2 pf    5971599        #\nl3 miss from l2 pf   53254420       #\ninstructions         94178737335    # 2.360 float per 1000 inst\nfloat 512            41             # 0.000 AVX-512 per 1000 inst\nfloat 256            10             # 0.000 AVX-256 per 1000 inst\nfloat 128            222295322      # 2.360 AVX-128 per 1000 inst\nfloat MMX            0              # 0.000 MMX per 1000 inst\nfloat scalar         0              # 0.000 scalar per 1000 inst\ninstructions         2697638        #\nopcache              1003361        # 371.941 opcache per 1000 inst\nopcache miss         536407         # 53.5% opcache miss rate\nl1 dTLB miss         6475           # 2.400 L1 dTLB per 1000 inst\nl2 dTLB miss         1209           # 0.448 L2 dTLB per 1000 inst\ninstructions         2698623        #\nicache               1306796        # 484.245 icache per 1000 inst\nicache miss          107669         #  8.2% icache miss rate\nl1 iTLB miss         8              # 0.003 L1 iTLB per 1000 inst\nl2 iTLB miss         0              # 0.000 L2 iTLB per 1000 inst\ntlb flush            19             # 0.007 TLB flush per 1000 inst\n<\/code><\/pre>\n\n\n\n<p>Intel metrics<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              39.446\non_cpu               0.040          # 0.65 \/ 16 cores\nutime                18.776\nstime                6.749\nnvcsw                4047           # 93.68%\nnivcsw               273            # 6.32%\ninblock              59048          # 1496.92\/sec\nonblock              16778872       # 425360.42\/sec\ncpu-clock            25511570118    # 25.512 seconds\ntask-clock           25515172774    # 25.515 seconds\npage faults          152548         # 5978.717\/sec\ncontext switches     4331           # 169.742\/sec\ncpu migrations       344            # 13.482\/sec\nmajor page faults    394            # 15.442\/sec\nminor page faults    152147         # 5963.001\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             33410561257    # 121.798 branches per 1000 inst\nbranch misses        38726732       # 0.12% branch miss\nconditional          33410575849    # 121.798 conditional branches per 1000 inst\nindirect             194086180      # 0.708 indirect branches per 1000 inst\nslots                568310686370   #\nretiring             253168976143   # 44.5% (44.5%)\n-- ucode             9482689758     #     1.7%\n-- fastpath          243686286385   #    42.9%\nfrontend             68582457368    # 12.1% (12.1%)\n-- latency           27346206309    #     4.8%\n-- bandwidth         41236251059    #     7.3%\nbackend              208066438235   # 36.6% (36.6%)\n-- cpu               162560138594   #    28.6%\n-- memory            45506299641    #     8.0%\nspeculation          37059301540    #  6.5% ( 6.5%)\n-- branch mispredict 5728184679     #     1.0%\n-- pipeline restart  31331116861    #     5.5%\nsmt-contention       0              #  0.0% ( 0.0%)\ncpu-cycles           94976267658    # 0.15 GHz\ninstructions         274031527927   # 2.89 IPC\nl2 access            3796563893     # 13.862 l2 access per 1000 inst\nl2 miss              588428056      # 15.50% l2 miss\ncpu-cycles           94762245616    # 11.8% memory latency\nload stalls          9914219291     #  6.0% l1 bound\nl1 miss              4275852025     #  2.0% l2 bound\nl2 miss              2381220001     #  0.4% l3 bound\nl3 miss              1955017893     #  2.1% dram bound\nstore_stalls         1244352811     #  1.3% store bound\n<\/code><\/pre>\n\n\n\n<p>Process overview shows some quick invocations of Java.  Test overhead also contributes to the metrics above.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>437 processes\n\t  8 java                    26.96    16.68\n\t 68 clinfo                  17.52     5.00\n\t  4 Finalizer               13.48     8.34\n\t  3 Common-Cleaner          13.47     8.31\n\t 38 vulkaninfo               1.14     1.31\n\t  1 dd                       0.16     3.00\n\t  4 vulkani:disk$0           0.12     0.13\n\t  6 glxinfo:gdrv0            0.10     0.07\n\t  6 glxinfo:gl0              0.10     0.07\n\t  2 llvmpipe-0               0.06     0.07\n\t  2 llvmpipe-1               0.06     0.07\n\t  2 llvmpipe-10              0.06     0.07\n\t  2 llvmpipe-11              0.06     0.07\n\t  2 llvmpipe-12              0.06     0.07\n\t  2 llvmpipe-13              0.06     0.07\n\t  2 llvmpipe-14              0.06     0.07\n\t  2 llvmpipe-15              0.06     0.07\n\t  2 llvmpipe-2               0.06     0.07\n\t  2 llvmpipe-3               0.06     0.07\n\t  2 llvmpipe-4               0.06     0.07\n\t  2 llvmpipe-5               0.06     0.07\n\t  2 llvmpipe-6               0.06     0.07\n\t  2 llvmpipe-7               0.06     0.07\n\t  2 llvmpipe-8               0.06     0.07\n\t  2 llvmpipe-9               0.06     0.07\n\t  6 php                      0.05     0.08\n\t  2 glxinfo                  0.05     0.03\n\t  2 glxinfo:cs0              0.05     0.03\n\t  2 glxinfo:disk$0           0.05     0.03\n\t  2 glxinfo:sh0              0.05     0.03\n\t  2 glxinfo:shlo0            0.05     0.03\n\t  6 clang                    0.04     0.08\n\t  1 lspci                    0.01     0.02\n\t  8 C1 CompilerThre          0.00    16.29\n\t  4 C2 CompilerThre          0.00    13.48\n\t  4 G1 Conc#0                0.00    13.48\n\t  4 G1 Refine#0              0.00    13.48\n\t  4 GC Thread#0              0.00    13.48\n\t  4 Reference Handl          0.00    13.48\n\t  4 Service Thread           0.00    13.48\n\t  4 Signal Dispatch          0.00    13.48\n\t  4 Sweeper thread           0.00    13.48\n\t  4 VM Thread                0.00    13.48\n\t  5 rm                       0.00     1.19\n\t  3 rocminfo                 0.00     0.03\n\t 86 sh                       0.00     0.00\n\t 12 gcc                      0.00     0.00\n\t  8 gsettings                0.00     0.00\n\t  8 stat                     0.00     0.00\n\t  8 systemd-detect-          0.00     0.00\n\t  6 llvm-link                0.00     0.00\n\t  5 gmain                    0.00     0.00\n\t  5 phoronix-test-s          0.00     0.00\n\t  4 G1 Main Marker           0.00     0.00\n\t  4 G1 Young RemSet          0.00     0.00\n\t  4 VM Periodic Tas          0.00     0.00\n\t  4 bash                     0.00     0.00\n\t  3 bork                     0.00     0.00\n\t  3 bork.sh                  0.00     0.00\n\t  3 dconf worker             0.00     0.00\n\t  2 lscpu                    0.00     0.00\n\t  2 uname                    0.00     0.00\n\t  2 which                    0.00     0.00\n\t  2 xset                     0.00     0.00\n\t  1 cc                       0.00     0.00\n\t  1 date                     0.00     0.00\n\t  1 dirname                  0.00     0.00\n\t  1 dmesg                    0.00     0.00\n\t  1 dmidecode                0.00     0.00\n\t  1 grep                     0.00     0.00\n\t  1 ifconfig                 0.00     0.00\n\t  1 ip                       0.00     0.00\n\t  1 lsmod                    0.00     0.00\n\t  1 mktemp                   0.00     0.00\n\t  1 ps                       0.00     0.00\n\t  1 qdbus                    0.00     0.00\n\t  1 readlink                 0.00     0.00\n\t  1 realpath                 0.00     0.00\n\t  1 sed                      0.00     0.00\n\t  1 sort                     0.00     0.00\n\t  1 stty                     0.00     0.00\n\t  1 systemctl                0.00     0.00\n\t  1 template.sh              0.00     0.00\n\t  1 wc                       0.00     0.00\n\t  1 xrandr                   0.00     0.00\n0 processes running\n47 maximum processes\n<\/code><\/pre>\n\n\n\n<p>Computation structure<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      720779) bork             cpu=6 start=9.07  finish=16.24\n        720780) bork.sh          cpu=15 start=9.07  finish=16.24\n          720781) java             cpu=0 start=9.07  finish=16.24\n            720782) java             cpu=5 start=9.08  finish=16.24\n              720783) GC Thread#0      cpu=-1 start=9.08  finish=16.24\n              720784) G1 Main Marker   cpu=0 start=9.08  finish=16.24\n              720785) G1 Conc#0        cpu=-1 start=9.08  finish=16.24\n              720786) G1 Refine#0      cpu=-1 start=9.09  finish=16.23\n              720787) G1 Young RemSet  cpu=0 start=9.09  finish=16.23\n              720788) VM Thread        cpu=-1 start=9.09  finish=16.24\n              720789) Reference Handl  cpu=-1 start=9.10  finish=16.24\n              720790) Finalizer        cpu=3 start=9.10  finish=16.24\n              720791) Signal Dispatch  cpu=-1 start=9.10  finish=16.24\n              720792) Service Thread   cpu=-1 start=9.10  finish=16.24\n              720793) C2 CompilerThre  cpu=-1 start=9.10  finish=16.24\n                720796) C1 CompilerThre  cpu=-1 start=9.10  finish=10.64\n              720794) C1 CompilerThre  cpu=-1 start=9.10  finish=16.24\n              720795) Sweeper thread   cpu=-1 start=9.10  finish=16.24\n              720797) VM Periodic Tas  cpu=0 start=9.11  finish=16.23\n              720798) Common-Cleaner   cpu=12 start=9.11  finish=16.24\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>bork is a cross-platform file encryption utility written in Java. There is one workload which runs in seconds. Also looks like it is single-threaded AMD topdown is sparse given how quickly it runs. AMD metrics shows this is single-threaded and <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/bork\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":58,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1452","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/comments?post=1452"}],"version-history":[{"count":3,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1452\/revisions"}],"predecessor-version":[{"id":1566,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1452\/revisions\/1566"}],"up":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/58"}],"wp:attachment":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/media?parent=1452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}