Page MenuHomeFreeBSD

First part of D17787:
ClosedPublic

Authored by glebius on Nov 6 2018, 11:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Oct 12, 2:37 AM
Unknown Object (File)
Mon, Sep 29, 4:20 PM
Unknown Object (File)
Fri, Sep 26, 3:07 AM
Unknown Object (File)
Sat, Sep 13, 11:34 AM
Unknown Object (File)
Aug 1 2025, 5:50 AM
Unknown Object (File)
Jul 6 2025, 8:40 AM
Unknown Object (File)
Jul 5 2025, 2:22 AM
Unknown Object (File)
Jul 3 2025, 3:41 AM
Subscribers

Details

Summary
  • Uninline epoch(9) entrance and exit. There is no proof that modern processors would benefit from avoiding a call, but bloating code. In fact, clang created an uninlined real function for many object files in the network stack.
  • Remove private copies of critical_enter/exit.
  • Move epoch_private.h into subr_epoch.c.

    There is no functional change.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sys/kern/subr_epoch.c
245 ↗(On Diff #50095)

IMO thi sis an obfuscation.

256 ↗(On Diff #50095)

Why using thread_lite and sched_pin_lite in a .c file, esp. when proc.h is already included ?

321 ↗(On Diff #50095)

Wrong indent.

glebius added inline comments.
sys/kern/subr_epoch.c
245 ↗(On Diff #50095)

I totally agree. But this is exact what was taken from epoch_private.h. Per mmacy@'s request I'm splitting the bigger change in small once. This just uninlines stuff.

256 ↗(On Diff #50095)

Same answer. To be addressed in next commits.

321 ↗(On Diff #50095)

Agreed. Taken from another file as is. To be cleaned up later.

This revision was not accepted when it landed; it landed in state Needs Review.Nov 13 2018, 7:02 PM
This revision was automatically updated to reflect the committed changes.