- 16 Jul, 2018 1 commit
-
-
Sridutt Bhalachandra authored
-
- 03 Jul, 2018 3 commits
-
-
Swann Perarnau authored
Add style checks to CI See merge request !16
-
Swann Perarnau authored
Trivial style corrections.
-
Swann Perarnau authored
flake8 is an automatic style checker. This is very useful to ensure that we have a consistent style as more people start contributing to the code. We ignore coolr for now, as it's a big offender.
-
- 25 May, 2018 4 commits
-
-
Swann Perarnau authored
[feature] add basic CI support See merge request !15
-
Swann Perarnau authored
Gitlab CI support, for a py.test run inside the pipenv configuration.
-
Swann Perarnau authored
Convert the project to pipenv See merge request !14
-
Swann Perarnau authored
Pipenv is a recent python tool, so add a bit of documentation in the readme for users.
-
- 18 May, 2018 1 commit
-
-
Swann Perarnau authored
Pipenv provides a reproducible description of the python packages necessary for a python application. See the Pipenv documentation for reference. We also remove tox from the repo, relying instead directly on pytest. Since we only supported one version of python, that's not a big deal.
-
- 13 Feb, 2018 2 commits
-
-
Swann Perarnau authored
Testing fixes See merge request !13
-
Swann Perarnau authored
Somehow missed that one.
-
- 21 Dec, 2017 2 commits
-
-
Swann Perarnau authored
Small fixes to correct for wrong actions on power control over a real load.
-
Swann Perarnau authored
Recent work has added and renamed binaries to the repository. This patch syncs the setup.py file to match the current state. This fixes missing binaries from path inside virtual environments.
-
- 20 Dec, 2017 6 commits
-
-
Swann Perarnau authored
Implement control loop See merge request !12
-
Swann Perarnau authored
Change the PowerActuator to be able to lower the power limit. Because RAPL doesn't provide an actual lower limit, we use 0 as the minimal power.
-
Swann Perarnau authored
This patch adds a poweractuator based on rapl settings available through the sensor manager. Adding this actuator forces us to use a list of actuators in the controller, changing a bit the structure of the code.
-
Swann Perarnau authored
-
Swann Perarnau authored
This patch introduce one more level of abstraction to the controller: an actuator. Actuators will act as the middleman between specific managers and the controller, while providing enough info to implement actual models on top. For now, we only have the application threads actuator.
-
Swann Perarnau authored
Initial support for perf wrapper See merge request !11
-
- 19 Dec, 2017 12 commits
-
-
Kamil Iskra authored
-
Kamil Iskra authored
-
Swann Perarnau authored
The "control" part of the NRM is bound to change and become more complex in the near future, so move it in its own module. This refactor also introduce some controller logic. Control is split into 3 steps: planning, execution and updates. The goal is to use this new code organization as a way to abstract different control policies that could be implemented later. Note that we might at some point move into a "control manager" and a bunch of "policies" and "actuators", as a way of matching typical control theory vocabulary.
-
Kamil Iskra authored
-
Swann Perarnau authored
Small things like spacing and extra semicolon. It is also recommended to use the 0o notation for octal, as a way to make them stand out in the code.
-
Kamil Iskra authored
-
Swann Perarnau authored
Bugfixes for recently implemented features See merge request !10
-
Swann Perarnau authored
Fixes a copy/paste mistake on the name of the callback to trigger on stderr events.
-
Swann Perarnau authored
This patch fixes the daemon code to include the container uuid in the environment of the command, while changing that environment variable to use a better suited name.
-
Swann Perarnau authored
Improve the downstream API See merge request !9
-
Swann Perarnau authored
This patch replace the client code (bin/client and nrm/client) by a new application code that integrates progress reports and uses the new downstream API. While git is reporting that both codes are different, the app code is basically a refactoring and adaptation of the client code. This is directly related to issue #2.
-
Swann Perarnau authored
This patch moves the tracking of applications clients of the downstream API into a ApplicationManager, that is able to track progress and thread management. This change is necessary in the long term to build a comprehensive downstream API and centralize the management of application tracking. Note that this tracking is currently independent of the container and pid tracking, and that might be a problem in the long term.
-
- 18 Dec, 2017 6 commits
-
-
Swann Perarnau authored
This patch refactors the downstream API to use pub/sub socket pair, like the upstream API. This is part of the effort to improve the downstream API. See #2. This patch doesn't touch the client module, which will be adapted in future commits.
-
Swann Perarnau authored
Fix upstream publishers messaging issues See merge request !8
-
Swann Perarnau authored
The way 0MQ works on PUB/SUB sockets, publishers might drop messages if subscribers are not detected faster enough. One way to fix it is to have the "server" always bind sockets, and the "client" use connect. This way, the handshake is initiated properly, and the client can publish as soon as the connection is done. This patch makes the daemon bind on the upstream API and the CLI connect, fixing in the process the message dropping we were experiencing before. Long term, we might have a think of using 2 types of sockets for the upstream API: pub/sub for actual events published from the daemon, and a REQ/REP or ROUTER/DEALER pair for "commands".
-
Swann Perarnau authored
Fix recent coolr issues and start building tests for it See merge request !7
-
Swann Perarnau authored
This patch adds a test for the nrm/coolr/clr_rapl.py code, based on the __main__ code added to it recently. This is an example of how the modules should be tested automatically, instead of relying on __main__ snippets everywhere. We should replace those snippets bits by bits by tests similar to this one. The end goal is to able to active a gitlab pipeline that validate merge requests automatically.
-
Swann Perarnau authored
Previous commit 0c93ce6a broke the sample code used by the daemon, by reverting the sample function to a json message generator. This is due to inconsistencies between the coolr code and the NRM import: we removed json generation from coolr, to push it on the messaging side, while upstream still does it on sensor reading. This commit fixes that, but doesn't touch the new test code embedded in clr_rapl.py We will move that the test infrastructure later.
-
- 17 Dec, 2017 1 commit
-
-
Kazutomo Yoshii authored
-
- 15 Dec, 2017 2 commits
-
-
Swann Perarnau authored
Switch to subprocess See merge request !6
-
Swann Perarnau authored
This patch implements a small finite state machine on the cmd side to be able to run a command, wait for all of its output, and then exit. As the daemon can send those message in any order, we need to wait them properly, in particular the closing of stdout/stderr before exiting. This patch also fixes the read_until_close callback creation to ensure that the stream EOF is handled as a distinct message.
-