Page MenuHomeFreeBSD

Set .ORDER for makesyscalls generated files
ClosedPublic

Authored by kevans on Jan 9 2020, 3:27 AM.

Details

Summary

When either makesyscalls.lua or syscalls.master changes, all of the ${GENERATED} targets are now out-of-date. With make jobs > 1, this means we will run the makesyscalls script in parallel for the same ABI, generating the same set of output files.

Prior to D23098, there is a large window for interlacing output for some of the generated files that we were generating in-place rather than staging in a temp dir. After that, we still should't need to run the script more than once per-ABI as the first invocation should update all of them. Add .ORDER to do so cleanly.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Lint Skipped
Unit
Unit Tests Skipped
Build Status
Buildable 28559

Event Timeline

kevans created this revision.Jan 9 2020, 3:27 AM
kevans added a reviewer: sjg.Jan 9 2020, 3:31 AM
kevans added a comment.Jan 9 2020, 5:36 AM

After discussing with sjg, I'm going to update these to .ORDER: ${GENERATED} and add inline comments describing why we care.

kevans updated this revision to Diff 66559.Jan 9 2020, 3:56 PM
kevans retitled this revision from Tag all sysent Makefiles with .NOTPARALLEL to Set .ORDER for makesyscalls generated files.
kevans edited the summary of this revision. (Show Details)

Update to use .ORDER, hopefully articulate the problem a little better both in commit message and actually add a comment lightly mentioning the problem we're addressing.

imp added a comment.Jan 9 2020, 4:05 PM

Looks good, with the possible exception of one new file added to GENERATED...

sys/kern/Makefile
16

Is this intentional?

kevans added inline comments.Jan 9 2020, 4:09 PM
sys/kern/Makefile
16

Whoops, I forgot to rebase -- I actually already committed that part last night since we should run the script again if somehow systrace_args.c is out of date but for some reason the others aren't.

brooks added a comment.Jan 9 2020, 6:47 PM

Looks fine, I agree with the comment on irc/slack that centralizing this in a .mk file likely makes sense. It's no much code, but it's a lot of duplication.

brooks accepted this revision.Jan 9 2020, 6:47 PM
This revision is now accepted and ready to land.Jan 9 2020, 6:47 PM
This revision was automatically updated to reflect the committed changes.