Page MenuHomeFreeBSD

realtimer_expire: avoid proc lock recursion when called from itimer_proc_continue()
ClosedPublic

Authored by kib on Apr 13 2021, 1:52 PM.
Tags
None
Referenced Files
F96141259: D29746.id.diff
Mon, Sep 23, 8:10 PM
Unknown Object (File)
Mon, Sep 23, 3:51 AM
Unknown Object (File)
Sun, Sep 22, 5:28 AM
Unknown Object (File)
Sat, Sep 21, 10:42 PM
Unknown Object (File)
Wed, Sep 18, 10:07 PM
Unknown Object (File)
Wed, Sep 18, 1:10 PM
Unknown Object (File)
Wed, Sep 18, 6:43 AM
Unknown Object (File)
Tue, Sep 17, 7:37 PM
Subscribers
None

Details

Summary

It is fine to drop the process lock there, process cannot exit until its timers are cleared.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib requested review of this revision.Apr 13 2021, 1:52 PM
kib created this revision.

Upload the correct version of the patch.
PHOLD() there is not needed and is even wrong.

I believe there is a similar recursion with kqueue timers: kqtimer_proc_continue() holds the proc lock, and filt_timerexpire() may attempt to acquire it.

Handle recursion in filter_timerexpire()

This revision is now accepted and ready to land.Apr 13 2021, 8:41 PM