Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor apps.config into lib.ptree #1258

Closed
wants to merge 607 commits into from

Conversation

wingo
Copy link
Contributor

@wingo wingo commented Dec 14, 2017

This merges #1257.

Jessica Tallon and others added 30 commits August 28, 2017 17:16
This improves the variable names to better describe what they
represent. It also makes the timer in the bench.lua code
repeating rather than simply creating lots of new timers everytime
it's called.
This moves the finding of followers for the leader and starting of
sampling to the setup function so it can be shared across both the
bench command and the run command.

In addition to this it also prevents the header from being written
multiple times.
- Fix typo.
- Rename iso_8601 to format_date_as_iso_8601.
- Store declared alarms in internal list of alarm_list.
Implement alarm raise and clear
The format is as for "snabb snsh", but it applies to the data plane
processes, not the main process.  For -jp and -jtprof, reports will go
out every 10 seconds.
Add -j option to "snabb lwaftr run" and "bench"
The refactoring avoids two ffi.new per iteration and uses Lua native
types instead, which results in less reported garbage collection.
The intermedary psid map is replaced by a Lua table. A 1M softwire
binding-table with psid length 6 has less than 16K entries,
manageable with a Lua table.
Adapt requires_splitter to new configuration format
This commit supports the addition of new instances by snabb config add
which will start a new follower and configure it with the instance
provided. Snabb config remove on an instance will now also stop the
instance.

Tests have been added to verify it starts and stops followers as
described above.
wingo and others added 27 commits December 11, 2017 09:42
Also add generic worker.main() export from lib.ptree.worker
* src/lib/ptree/worker.lua: Privatize "Worker".
Store next_time locally in the main() function, and in the selftest, run
the main() function for longer than a single tick.
Allow timers to be cancelled.
Having the multiprocess tree and configuration system be implemented as
apps was a neat hack that re-used the app abstraction as a way to add a
reconfiguration back-channel to a dataplane, but it goes against the
abstraction that the core.app / engine facility should really be
targeted towards the dataplane domain; it's not necessarily a great
generic process composition facility.
This name better matches how users will think of it.  Also add
functionality to set program name to the manager, and bind the manager
to a NUMA node as appropriate.  Unclaim the name as the manager stops.
Do assign CPU affinity even if it has to be on a remote node, but warn.
Warn if no CPUs available.
Use config-leader-socket to avoid breaking existing clients.
@wingo
Copy link
Contributor Author

wingo commented Dec 14, 2017

whoops, wrong target branch

@wingo wingo closed this Dec 14, 2017
@wingo wingo deleted the merge-config-refactor branch April 18, 2018 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants