- scheduler: improved log messages for limited locality scheduling

svn path=/trunk/boinc/; revision=26065
This commit is contained in:
David Anderson 2012-08-29 03:09:10 +00:00
parent be91b976ce
commit 96b6e172f9
6 changed files with 51 additions and 16 deletions

View File

@ -5781,3 +5781,13 @@ David 27 Aug 2012
html/ops/
db_update.php
David 28 Aug 2012
- scheduler: improved log messages for limited locality scheduling
sched/
sched_send.cpp
transitioner.cpp
sched_shmem.h
sched_array.cpp
lib/
str_util.cpp

View File

@ -607,7 +607,7 @@ const char* suspend_reason_string(int reason) {
case SUSPEND_REASON_INITIAL_DELAY: return "initial delay";
case SUSPEND_REASON_EXCLUSIVE_APP_RUNNING: return "an exclusive app is running";
case SUSPEND_REASON_CPU_USAGE: return "CPU is busy";
case SUSPEND_REASON_NETWORK_QUOTA_EXCEEDED: return "network bandwidth limit exceeded";
case SUSPEND_REASON_NETWORK_QUOTA_EXCEEDED: return "network transfer limit exceeded";
case SUSPEND_REASON_OS: return "requested by operating system";
case SUSPEND_REASON_WIFI_STATE: return "device is not on wifi";
}

View File

@ -122,12 +122,14 @@ static bool quick_check(
//
if (g_wreq->locality_sched_lite) {
if (app->locality_scheduling == LOCALITY_SCHED_LITE) {
if (nfiles_on_host(wu_result.workunit) == 0) {
if (config.debug_array) {
log_messages.printf(MSG_NORMAL,
"[array] no files on host\n"
);
}
int n = nfiles_on_host(wu_result.workunit);
if (config.debug_array) {
log_messages.printf(MSG_NORMAL,
"[array] job %s: %d files on host\n",
wu_result.workunit.name, n
);
}
if (n == 0) {
return false;
}
}
@ -469,6 +471,11 @@ void send_work_old() {
//
if (g_wreq->has_reliable_version) {
g_wreq->reliable_only = true;
if (config.debug_send) {
log_messages.printf(MSG_NORMAL,
"[send] scanning for jobs that need reliable host\n"
);
}
if (scan_work_array()) return;
g_wreq->reliable_only = false;
g_wreq->best_app_versions.clear();
@ -482,8 +489,7 @@ void send_work_old() {
g_wreq->beta_only = true;
if (config.debug_send) {
log_messages.printf(MSG_NORMAL,
"[send] [HOST#%d] will accept beta work. Scanning for beta work.\n",
g_reply->host.id
"[send] host will accept beta jobs. Scanning for them.\n"
);
}
if (scan_work_array()) return;
@ -493,18 +499,35 @@ void send_work_old() {
// give next priority to results that were infeasible for some other host
//
g_wreq->infeasible_only = true;
if (config.debug_send) {
log_messages.printf(MSG_NORMAL,
"[send] Scanning for jobs that were infeasible for another host.\n"
);
}
if (scan_work_array()) return;
g_wreq->infeasible_only = false;
// if some app uses locality sched lite,
// make a pass accepting only jobs for which the client has a file
//
g_wreq->locality_sched_lite = true;
if (scan_work_array()) return;
g_wreq->locality_sched_lite = false;
if (ssp->locality_sched_lite) {
if (config.debug_send) {
log_messages.printf(MSG_NORMAL,
"[send] Scanning for locality sched Lite jobs.\n"
);
}
g_wreq->locality_sched_lite = true;
if (scan_work_array()) return;
g_wreq->locality_sched_lite = false;
}
// end of high-priority cases. Now do general scan.
//
if (config.debug_send) {
log_messages.printf(MSG_NORMAL,
"[send] doing general job scan.\n"
);
}
if (scan_work_array()) return;
// If user has selected apps but will accept any,
@ -515,8 +538,7 @@ void send_work_old() {
preferred_app_message_index = g_wreq->no_work_messages.size();
if (config.debug_send) {
log_messages.printf(MSG_NORMAL,
"[send] [HOST#%d] is looking for work from a non-preferred application\n",
g_reply->host.id
"[send] scanning for jobs from non-preferred applications\n"
);
}
scan_work_array();

View File

@ -111,6 +111,9 @@ void add_job_files_to_host(WORKUNIT& wu) {
if (retval) continue;
if (!fi.sticky) continue;
if (!file_present_on_host(fi.name)) {
log_messages.printf(MSG_NORMAL,
"Adding file %s to host file list\n", fi.name
);
g_request->file_infos.push_back(fi);
}
}

View File

@ -89,7 +89,7 @@ struct SCHED_SHMEM {
int max_app_versions;
int max_assignments;
int max_wu_results;
bool locality_sched_lite;
bool locality_sched_lite; // some app uses locality sched Lite
bool have_apps_for_proc_type[NPROC_TYPES];
PERF_INFO perf_info;
PLATFORM platforms[MAX_PLATFORMS];

View File

@ -632,7 +632,7 @@ int handle_wu(
if (deferred_file_delete_time
&& deferred_file_delete_time < wu_item.transition_time
) {
wu_item.transition_time = deferred_file_delete_time;
wu_item.transition_time = (int)deferred_file_delete_time;
}
// Handle transitioner overload.