Allow setting GC_INITIAL_HEAP_SIZE for hydra-eval-jobs
[?]
May 16, 2018, 12:14 PM
ZVSHXE3KY43J5BBDGERORR2FAVDG4ARANUUSGIYDHUN767SQ4GAQCDependencies
- [2]
HK2F7SKQFix std::stoi exception - [3]
FHVJYJFEUpload build logs to the binary cache - [4]
K7IOFWLNFix build - [5]
STZE4KKRFix build against Nix master - [6]
5AIYUMTBBasic remote building - [7]
B2L4T3X6Sync with Nix - [8]
MHVIT4JYSplit hydra-queue-runner.cc more - [9]
SJQC2I3NBump memory limit a bit - [10]
XCHAKH4Dhydra-queue-runner: Bump memory limit to reflect more accurate accounting - [11]
PIMGMGAFRename hydra_eval_jobs to hydra-eval-jobs - [12]
HJOEIMLRRefactor - [13]
V2UCCYN3hydra-queue-runner: Get store mode configuration from hydra.conf - [14]
74WP3O3Fmax-output-size -> max_output_size - [15]
RQUAATWBAdd status dump facility - [16]
OCZ4LSGGAutomatically retry aborted builds - [17]
24BMQDZAStart of single-process hydra-queue-runner - [18]
PLOZBRTRAdd command ‘hydra-queue-runner --status’ to show current status - [19]
FV2M6MOThydra: use autoconf/-make - [20]
ENXUSMSVMake concurrency more robust - [21]
SL3WSRAChydra-queue-runner: Limit memory usage - [22]
PQFOMNTLhydra-queue-runner: More stats - [23]
KNLKTCDMUse pkgconfig to find Nix - [24]
NSBNNM77Add hydra.conf option "nar_buffer_size" to configure memoryTokens limit - [25]
XCDTFZUYhydra-queue-runner: Fix build - [26]
M3A5PZIHhydra: Clarify the dependency on BDW-GC. - [27]
GJV2J5HXPool local store connections - [28]
BG6PEOB2Make the output size limit configurable - [29]
UUN5WH4DDecrease memoryTokens - [30]
SGFLU2VSUSER -> LOGNAME for consistency - [31]
CNLNT3T4Allow only 1 thread to send a closure to a given machine at the same time - [32]
MB3TISH2Rate-limit the number of threads copying closures at the same time - [33]
F57YJP5PBuild against latest Nix - [*]
4N5APGRG* Start of a helper tool to evaluate job expressions efficiently. - [*]
7GKAIP3VFix build and handling of string inputs starting with a dash - [*]
4YCF3KBGConcurrent hydra-evaluator
Change contents
- replacement in src/hydra-eval-jobs/Makefile.am at line 5
AM_CXXFLAGS = $(NIX_CFLAGS)[6.318]hydra_eval_jobs_CXXFLAGS = $(NIX_CFLAGS) -I ../libhydra - edit in src/hydra-eval-jobs/hydra-eval-jobs.cc at line 15
#include "hydra-config.hh" - edit in src/hydra-eval-jobs/hydra-eval-jobs.cc at line 162
auto config = std::make_unique<::Config>();auto initialHeapSize = config->getStrOption("evaluator_initial_heap_size", "");if (initialHeapSize != "")setenv("GC_INITIAL_HEAP_SIZE", initialHeapSize.c_str(), 1); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 13
#include "shared.hh" - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 14
#include "hydra-config.hh" - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 17
#include "shared.hh" - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 31[4.335]→[6.0:14](∅→∅),[6.22]→[6.0:14](∅→∅),[6.14]→[6.7501:7503](∅→∅),[6.64]→[6.7501:7503](∅→∅),[6.65]→[6.7501:7503](∅→∅),[6.65]→[6.7501:7503](∅→∅),[6.617]→[6.7501:7503](∅→∅),[6.1126]→[6.7501:7503](∅→∅),[6.1419]→[6.7501:7503](∅→∅),[6.7501]→[6.7501:7503](∅→∅),[6.7503]→[6.15:63](∅→∅),[6.63]→[6.0:1](∅→∅),[6.7840]→[6.0:1](∅→∅),[6.1]→[6.64:212](∅→∅),[6.212]→[6.118:119](∅→∅),[6.118]→[6.118:119](∅→∅),[6.119]→[6.213:364](∅→∅),[6.364]→[6.262:263](∅→∅),[6.262]→[6.262:263](∅→∅),[6.263]→[6.365:462](∅→∅),[6.462]→[6.352:353](∅→∅),[6.352]→[6.352:353](∅→∅),[6.353]→[6.463:584](∅→∅),[6.584]→[6.466:467](∅→∅),[6.466]→[6.466:467](∅→∅),[6.467]→[6.585:626](∅→∅),[6.504]→[6.7840:7841](∅→∅),[6.626]→[6.7840:7841](∅→∅),[6.7840]→[6.7840:7841](∅→∅),[6.7841]→[6.627:679](∅→∅),[6.679]→[6.543:560](∅→∅),[6.543]→[6.543:560](∅→∅),[6.560]→[6.680:764](∅→∅),[6.764]→[6.3819:3825](∅→∅),[6.560]→[6.3819:3825](∅→∅),[6.3825]→[6.765:972](∅→∅),[6.972]→[2.0:65](∅→∅),[2.65]→[6.1036:1151](∅→∅),[6.1036]→[6.1036:1151](∅→∅),[6.1151]→[3.598:683](∅→∅),[3.683]→[6.3932:3938](∅→∅),[6.1214]→[6.3932:3938](∅→∅),[6.3932]→[6.3932:3938](∅→∅),[6.3938]→[6.1215:1220](∅→∅)
struct Config{std::map<std::string, std::string> options;Config(){/* Read hydra.conf. */auto hydraConfigFile = getEnv("HYDRA_CONFIG");if (pathExists(hydraConfigFile)) {for (auto line : tokenizeString<Strings>(readFile(hydraConfigFile), "\n")) {line = trim(string(line, 0, line.find('#')));auto eq = line.find('=');if (eq == std::string::npos) continue;auto key = trim(std::string(line, 0, eq));auto value = trim(std::string(line, eq + 1));if (key == "") continue;options[key] = value;}}}std::string getStrOption(const std::string & key, const std::string & def = ""){auto i = options.find(key);return i == options.end() ? def : i->second;}uint64_t getIntOption(const std::string & key, uint64_t def = 0){auto i = options.find(key);return i == options.end() ? def : std::stoll(i->second);}bool getBoolOption(const std::string & key, bool def = false){auto i = options.find(key);return i == options.end() ? def : (i->second == "true" || i->second == "1");}}; - file addition: hydra-config.hh[37.9041]
#pragma once#include <map>#include "util.hh"struct Config{std::map<std::string, std::string> options;Config(){using namespace nix;/* Read hydra.conf. */auto hydraConfigFile = getEnv("HYDRA_CONFIG");if (pathExists(hydraConfigFile)) {for (auto line : tokenizeString<Strings>(readFile(hydraConfigFile), "\n")) {line = trim(string(line, 0, line.find('#')));auto eq = line.find('=');if (eq == std::string::npos) continue;auto key = trim(std::string(line, 0, eq));auto value = trim(std::string(line, eq + 1));if (key == "") continue;options[key] = value;}}}std::string getStrOption(const std::string & key, const std::string & def = ""){auto i = options.find(key);return i == options.end() ? def : i->second;}uint64_t getIntOption(const std::string & key, uint64_t def = 0){auto i = options.find(key);return i == options.end() ? def : std::stoll(i->second);}bool getBoolOption(const std::string & key, bool def = false){auto i = options.find(key);return i == options.end() ? def : (i->second == "true" || i->second == "1");}};