- Jul 21, 2011
-
-
Iustin Pop authored
These were forgot when the supported library versions were changed. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This adds tests for the opToResult and eitherToResult functions from Types.hs, and changes two other tests for the same module to test JSON serialisation (which automatically also tests the lower-level to/from string conversion functions). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Also mark the deprecated modes we no longer support. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Tested only on GHC 7.x, will test on 6.1x too before commit. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This adds parameter documentation for Cluster.iMoveToJob (I think it was not clear if the new or old node list is needed) and fixes other docstring style issues. After this patch, all modules except for CLI.hs (which has many obvious declarations for command-line options) and QC.hs (unittests) have 100% doc-strings. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This abstracts the JSON parsing of the type EvacMode near its definition, and simplifies its conversion in IAlloc.parseData. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Currently, hspace can only output a machine-readable format that (while detailed) is hard to parse quickly by people. This patch adds (and enables by default) a human-readable output that shows the most important metrics in a simple format. Most of the work of the patch is in moving the display of various metrics from the 'main' function to separate functions, each of which can output either a machine or human intended format. The patch also corrects a bug in the CPU efficiency display: before, the efficiency was computed as instance virtual CPUs divided by total physical CPUs, which is almost always supra-unitary. More correct is to divide by the total virtual CPUs, which shows a more meaningful number (when the p-to-v CPU ratio has been defined correctly). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Commit 56c094b4 added use of job constants, but I didn't pay attention and ended up mixing things: job constants were used for opcode ones, and the job ones didn't get converted. This patch corrects it and uses only C.* constants throughout the Jobs module. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This patch renames the {JOB,OP}_STATUS_WAITLOCK constants to {JOB,OP}_STATUS_WAITING, as per design document for chained jobs. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
When jobs waiting for a dependency are notified, they're re-added to the queue. This would require owning the queue lock in exclusive mode, but since the function doing so is called from within the job/opcode processor, it only holds the lock in shared mode. This patch changes the result of the processor from a boolean to a status value (integer). This way the caller can be notified about actions to take, including notifying waiting jobs. The function adding jobs to the queue can now acquire the lock in exclusive mode. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Sébastien Bocahu authored
Signed-off-by:
Sébastien Bocahu <zecrazytux@zecrazytux.net> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
With this change users of the “SubmitManyJobs” interface can use relative job dependencies. Relative job IDs in dependencies are resolved before handing the job off to the workerpool. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
- Adjust for new iallocator result format - Split some code into helper functions Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 20, 2011
-
-
Guido Trotter authored
hspace and hbal treat -O differently, and use aliases for short names (although hbal succeeds in that, and hspace doesn't). Uniform this with a name lookup, using the same functions we used for instance selection/exclusion. Some of the code is by the way a bit repetitive, and could probably be merged in a single function. That needs to be a monadic one, though, so I promise to do it as soon as I realize how to write them! ;) Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Basically only one instance of the job, the one being processed, should be serialized to disk and replicated to other nodes. With this flag assertions can be added in various places. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
An overview is available in the design document for this change, doc/design-chained-jobs.rst. When a job enters the job processor, the current opcode's dependencies are evaluated. If a referenced job has not yet reached the desired status, the current job is registered as a dependant. The job processor will continue to work on other pending tasks. When a job finishes it notifies any pending dependants by re-adding them to the workerpool. A per-job processor lock is necessary for rare cases where the same job can be re-added twice. There is no way to view waiting jobs at the moment, but I plan to export this information to “gnt-debug locks”. A so-called dependency manager takes care of managing waiting jobs and keeping track of their status. Unittests are included. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
As requested by Iustin. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Pedro Macedo authored
Signed-off-by:
Pedro Macedo <pmacedo@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
They're no longer necessary. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jul 19, 2011
-
-
Iustin Pop authored
This will be used in hspace to toggle between "human" readable and machine readable output formats. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Since this is a common option and has a big description. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This is used just in hspace, so let's help in making Cluster.hs smaller. We also split the function in two, as computing the spec map and formatting it are two different tasks. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This adds the binaries code to the coverage, and thus the coverage finally shows the real coverage over all logic code (except for the htools.hs code, which is not logic code related to the algorithms, so it doesn't matter — plus it's also very small). Next steps will be to actually add coverage for this code, especially for hbal and hspace, which are relatively big compared to hail and hscan (around 800 expressions versus 200-300 expressions). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This is the last patch of the binaries conversion. As information, we now have a single binary that is approx. 5.4MiB in size, compared to 4 binaries that were approx. 5.1-5.2MiB in size; this will result in a smaller package and install size, and the single compilation phase should also help. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
In addition, the patch adds a separate Makefile variable for holding the binary roles to make it more clear what we symlink. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This converts the first binary to the generic 'htools' binary. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This is the start of a series of patches that will unify all the binaries currently in use in a single one, which can perform different roles based on the name it is installed as. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
When compiling with the parallel-3.x library, we get a deprecation warning, which makes understanding any other error messages harder. This patch adds a compatibility module that will hold such code for transitioning libraries. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
… which was deprecated by the previous patch. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Since the new node-evacuate mode does both their work and also supports better multi-group clusters (including handling split instances). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently, the ChangeAll mode of nodeEvac computes the primary group of the instance and then uses the resulting group index for computing the group score. However, during the change-group operation (which also uses ChangeAll), the group of the instance at the beginning and end of the operation differs, so we can't do that and we must instead pass the final group to the function. This patch does that, by passing the group from the caller of nodeEvac. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jul 18, 2011
-
-
Iustin Pop authored
As the IAllocator backend is using a different data path than the others, it doesn't get the full functionality that loadExternalData does. This results in the current situation where checkData is not run on the input cluster state, which means the node memory properties are not correctly set, leading to no Xmem being set correctly. This patch fixes this bug by adding a manual call to checkData. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This will make it possible to reuse this in IAllocator too. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This eliminates duplication of codes (and was forgotten back when maybePrintNodes was added). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-