Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Apr 2023 20:15:10 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 270785] Performance and power efficiency regression due to pthread_cond_timedwait() changes
Message-ID:  <bug-270785-227-Bn6LeZbspD@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-270785-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-270785-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D270785

--- Comment #4 from bllcha013@myuct.ac.za ---
(In reply to Mark Johnston from comment #3)

I cloned releng/13.2 and reverted commit
e21c77f80c3b1cf2bd0a9f874e15e7a8e49f0dba. Reverting this commit fixes the
regression.

I also did the dtrace output as asked - thank you for providing the dtrace
script.


releng/13.2 (standard, same as RELEASE):

syscall                     seconds   calls  errors
__sysctlbyname          0.000650415       6       0
getrusage               0.008321625     116       0
sched_yield             1.287887942   29936       0
_umtx_op               41.138906134   30136   30132
                      ------------- ------- -------
                       42.435766116   60194   30132

dtrace: description 'fbt::do_wait:entry ' matched 1 probe
CPU     ID                    FUNCTION:NAME
  2  18111                    do_wait:entry struct _umtx_time {
    struct timespec _timeout =3D {
        time_t tv_sec =3D 0xc2
        long tv_nsec =3D 0x2ed64521
    }
    __uint32_t _flags =3D 0x1
    __uint32_t _clockid =3D 0x4
}
  2  18111                    do_wait:entry struct _umtx_time {
    struct timespec _timeout =3D {
        time_t tv_sec =3D 0xc2
        long tv_nsec =3D 0x2ed7d390
    }
    __uint32_t _flags =3D 0x1
    __uint32_t _clockid =3D 0x4
}


releng/13.2 (with commit e21c77f80c3b1cf2bd0a9f874e15e7a8e49f0dba reverted):

syscall                     seconds   calls  errors
getrusage               0.003569531      58       0
sched_yield             0.168773634    3781       0
_umtx_op               16.840977734    3873    3873
                      ------------- ------- -------
                       17.013320899    7712    3873

dtrace: description 'fbt::do_wait:entry ' matched 1 probe
CPU     ID                    FUNCTION:NAME
  4  18111                    do_wait:entry struct _umtx_time {
    struct timespec _timeout =3D {
        time_t tv_sec =3D 0x6f
        long tv_nsec =3D 0xba6df4a
    }
    __uint32_t _flags =3D 0x1
    __uint32_t _clockid =3D 0x4
}
  3  18111                    do_wait:entry struct _umtx_time {
    struct timespec _timeout =3D {
        time_t tv_sec =3D 0x6f
        long tv_nsec =3D 0x8bb061f
    }
    __uint32_t _flags =3D 0x1
    __uint32_t _clockid =3D 0x4
}


So it seems that reverting the commit fixes the issue. It also helps the Un=
iFi
Controller as well (although that wasn't impacted as drastically as Minecra=
ft).
This might be a kernel bug as you mentioned?

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-270785-227-Bn6LeZbspD>