[Bug 270785] Performance and power efficiency regression due to pthread_cond_timedwait() changes

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 12 Apr 2023 20:13:51 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270785

--- Comment #2 from bllcha013@myuct.ac.za ---
(In reply to Alexander Motin from comment #1)

I ran truss for about 5 seconds against two java processes, one running UniFi
Controller and another running Minecraft server.

UniFi 13.1-RELEASE:

syscall                     seconds   calls  errors
thr_set_name            0.001021075       2       0
kevent                 13.369956893      13       0
fstatat                 0.001887292       5       5
getrusage               0.003297147      14       0
_umtx_op               51.382037072     210     111
                      ------------- ------- -------
                       64.758199479     244     116

UniFi 13.2-RELEASE:

syscall                     seconds   calls  errors
__sysctlbyname          0.000062617       3       0
write                   0.000054957       1       0
fstatat                 0.000652984       6       6
getrusage               0.001700589      21       0
thr_set_name            0.000423376       4       0
kevent                 24.622512777      24       0
_umtx_op               55.068817041     262     194
                      ------------- ------- -------
                       79.694224341     321     200

Minecraft 13.1-RELEASE:

syscall                     seconds   calls  errors
getrusage               0.012089758      74       0
sched_yield             0.088819070     726       0
_umtx_op               22.515308049     838     838
                      ------------- ------- -------
                       22.616216877    1638     838

Minecraft 13.2-RELEASE:

syscall                     seconds   calls  errors
getrusage               0.002642594     106       0
sched_yield             0.750417219   37623       0
_umtx_op               28.945530935   37797   37797
                      ------------- ------- -------
                       29.698590748   75526   37797

A few lines from Minecraft on 13.1-RELEASE:

_umtx_op(0x801066458,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x7fffdd2ac688) ERR#60
'Operation timed out'
sched_yield()                                    = 0 (0x0)
_umtx_op(0x8010661d0,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x7fffdecebd68) ERR#60
'Operation timed out'
_umtx_op(0x801066458,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x7fffdd2ac688) ERR#60
'Operation timed out'
sched_yield()                                    = 0 (0x0)
_umtx_op(0x801066458,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x7fffdd2ac688) ERR#60
'Operation timed out'
sched_yield()                                    = 0 (0x0)

A few lines from Minecraft on 13.2-RELEASE:

_umtx_op(0x18defb81b470,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x18e0d4980728)
ERR#60 'Operation timed out'
sched_yield()                                    = 0 (0x0)
_umtx_op(0x18defb81b470,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x18e0d4980728)
ERR#60 'Operation timed out'
sched_yield()                                    = 0 (0x0)
_umtx_op(0x18defb81b470,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x18e0d4980728)
ERR#60 'Operation timed out'
sched_yield()                                    = 0 (0x0)
_umtx_op(0x18defb81b470,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x18,0x18e0d4980728)
ERR#60 'Operation timed out'
sched_yield()                                    = 0 (0x0)

This is my first time using truss, or doing any sort of "debugging" so I'm not
very familiar, if I didn't do something right please tell me and I'll try do it
again properly.

I hope this helps with understanding.

-- 
You are receiving this mail because:
You are the assignee for the bug.