Description - phoronix/git

This test measures the time needed to carry out some sample Git operations on an example, static repository that happens to be a copy of the GNOME
GTK tool-kit repository.

This test is more about filesystem than processor. While it might not be single-threaded, tests below pinned to one core so times could be aggregated.

Metrics (Intel) - phoronix/git
sh - pid 22797
	On_CPU   0.125
	On_Core  0.998
	IPC      2.074
	Retire   0.407	(40.7%)
	FrontEnd 0.165	(16.5%)
	Spec     0.238	(23.8%)
	Backend  0.190	(19.0%)
	Elapsed   5.92
	Procs    60
	Maxrss   219K
	Minflt   242973
	Majflt   0
	Inblock  0
	Oublock  141688
	Msgsnd   0
	Msgrcv   0
	Nsignals 0
	Nvcsw    309	(35.5%)
	Nivcsw   562
	Utime    5.508177
	Stime    0.399221
	Start    170135.88
	Finish   170141.80

On_core is 100%. The IPC is medium with higher than average speculative stalls. The runtime is very quick at only 6 seconds. While there are some voluntary context switches, the On_core suggests not waiting substantially for I/O.

Metrics (AMD) - phoronix/git
sh - pid 8045
	On_CPU   0.054
	On_Core  0.871
	IPC      2.068
	FrontCyc 0.097	(9.7%)
	BackCyc  0.283	(28.3%)
	Elapsed   7.14
	Procs    60
	Maxrss   219K
	Minflt   243463
	Majflt   0
	Inblock  0
	Oublock  141704
	Msgsnd   0
	Msgrcv   0
	Nsignals 0
	Nvcsw    320	(22.6%)
	Nivcsw   1093
	Utime    5.854414
	Stime    0.364961
	Start    53673.37
	Finish   53680.51

AMD IPC is almost exactly the same.

Process Tree - phoronix/git
Process Tree
    22797) sh
      22798) git
        22799) git
        22800) git
        22801) git
        22802) git
        22803) git
        22804) git
        22805) git
        22806) git
        22807) git
        22808) git
        22809) git
        22810) git
        22811) git
        22812) mv
        22813) git
        22814) git
          22823) git
        22815) git
        22816) git
        22817) git
        22818) git
        22819) git
        22820) git
        22821) git
        22822) git
        22824) git
        22825) git
        22826) git
        22827) git
        22828) git
        22829) git
        22830) git
        22831) git
        22832) git
        22833) git
          22834) git
        22835) git
        22836) git
        22837) git
        22838) git
        22839) git
        22840) git
        22841) git
        22842) git
        22843) git
        22844) git
        22845) git
        22846) git
        22847) git
        22848) git
        22849) git
        22850) git
        22851) git
        22852) git
        22853) git
        22854) git
        22855) git
        22856) git

As expected the process tree is many git operations.


Short runtime shows some idle time, but metrics show when actually running it is 100% on a core.


IPC has some noise.


Speculative stalls contribute, otherwise some noise with a short-running benchmark.

Topdown (Intel)
on_cpu         0.103
elapsed        23.081
utime          16.423
stime          16.423
nvcsw          2852 (91.00%)
nivcsw         282 (9.00%)
inblock        0
inblock        3571096
retire         0.482
ms_uops                0.019
speculation    0.150
branch_misses          93.44%
machine_clears         6.56%
frontend       0.169
idq_uops_delivered_0   0.036
icache_stall               0.008
itlb_misses                0.001
idq_uops_delivered_1   0.063
idq_uops_delivered_2   0.098
idq_uops_delivered_3   0.145
dsb_ops                    74.18%
backend        0.200
resource_stalls.sb     0.023
stalls_ldm_pending     0.560
l2_refs                    0.014
l2_misses                  0.006
l2_miss_ratio              42.67%
l3_refs                    0.003
l3_misses                  0.000
l3_miss_ratio              17.56%

Branch misses appear to be an issue. Also shows an overall high rate of L2 references, but not missing into main memory.

Next steps: None