- client: if we're making an RPC to a project because of user request,

clear the resource backoff times so that we potentially
        can ask the project for work.

svn path=/trunk/boinc/; revision=17052
This commit is contained in:
David Anderson 2009-01-27 22:25:32 +00:00
parent dfa1996975
commit 8952fbe60e
3 changed files with 27 additions and 6 deletions

View File

@ -724,7 +724,7 @@ David 23 Jan 2009
sched_send.cpp
server_types.h
Janus 25 Jan 2009
Janus 25 Jan 2009
- Fixed a major bug in the translation system which was causing a lot
of people to receive the webpages in semi-random languages.
- Added the ability for projects to decide whether they want the
@ -732,11 +732,11 @@ Janus 25 Jan 2009
html/
inc/
translation.inc
user/
forum_index.php
project_sample/
project.inc
translation.inc
user/
forum_index.php
project_sample/
project.inc
David 25 Jan 2009
- client: don't request work for a resource if it has no shortfall.
@ -810,3 +810,12 @@ David 27 Jan 2009
work_fetch.h
sched/
sched_send.cpp
David 27 Jan 2009
- client: if we're making an RPC to a project because of user request,
clear the resource backoff times so that we potentially
can ask the project for work.
client/
cs_scheduler.cpp
work_fetch.cpp

View File

@ -350,6 +350,12 @@ bool CLIENT_STATE::scheduler_rpc_poll() {
//
p = next_project_sched_rpc_pending();
if (p) {
// if the user requested the RPC, clear backoffs to allow work requests
//
if (p->sched_rpc_pending == RPC_REASON_USER_REQ) {
p->cpu_pwf.backoff_time = 0;
p->cuda_pwf.backoff_time = 0;
}
work_fetch.compute_work_request(p);
scheduler_op->init_op_project(p, p->sched_rpc_pending);
action = true;

View File

@ -402,6 +402,9 @@ void RSC_WORK_FETCH::update_debts() {
// this keeps eligible projects from diverging from non-eligible ones.
//
double offset = delta_sum/neligible;
if (log_flags.debt_debug) {
msg_printf(p, MSG_INFO, "[debt] subtract %f for zero total change", offset);
}
double max_debt = 0;
for (i=0; i<gstate.projects.size(); i++) {
p = gstate.projects[i];
@ -415,6 +418,9 @@ void RSC_WORK_FETCH::update_debts() {
// Add an offset so max debt is zero across all projects.
// This ensures that new projects start out debt-free.
//
if (log_flags.debt_debug) {
msg_printf(p, MSG_INFO, "[debt] subtract %f for zero max debt", max_debt);
}
for (i=0; i<gstate.projects.size(); i++) {
p = gstate.projects[i];
RSC_PROJECT_WORK_FETCH& w = project_state(p);