diff --git a/checkin_notes b/checkin_notes index e57941e98e..7bb14fd27e 100644 --- a/checkin_notes +++ b/checkin_notes @@ -743,15 +743,15 @@ David 27 Jan 2010 work_fetch.cpp David 27 Jan 2010 - - client: fix work fetch bug that prevented getting work - from an overworked project, - even if idle instance or major shortfall. - - GUI RPC: finish the notice-duplication thing + - client: fix work fetch bug that prevented getting work + from an overworked project, + even if idle instance or major shortfall. + - GUI RPC: finish the notice-duplication thing - client/ - work_fetch.cpp,h - lib/ - gui_rpc_client_ops.cpp + client/ + work_fetch.cpp,h + lib/ + gui_rpc_client_ops.cpp David 27 Jan 2010 - client: remove debug msgs @@ -784,11 +784,11 @@ Charlie 28 Jan 2010 Mac_SA_Secure.sh David 28 Jan 2010 - - client: fix my last checkin + - client: fix my last checkin - client/ - client_types.cpp - cs_statefile.cpp + client/ + client_types.cpp + cs_statefile.cpp David 29 Jan 2010 - user web: allow zero resource share @@ -809,12 +809,12 @@ David 29 Jan 2010 forum_reply.php David 30 Jan 2010 - - manager: move Preferences and Options to Task menu. - Give them more descriptive names. - Clean up mnemonics + - manager: move Preferences and Options to Task menu. + Give them more descriptive names. + Clean up mnemonics - clientgui/ - AdvancedFrame.cpp + clientgui/ + AdvancedFrame.cpp David 1 Feb 2010 - graphics API: if font missing, find one that isn't (from Kevin) @@ -1020,14 +1020,14 @@ Charlie 8 Feb 2010 BOINCSaver.nib David 9 Feb 2010 - - client: undo [17160]. 0 in cc_config.xml - no longer means simulate zero CPUs. - There are several places that divide by ncpus. - Zero CPUs doesn't make any sense anyway. + - client: undo [17160]. 0 in cc_config.xml + no longer means simulate zero CPUs. + There are several places that divide by ncpus. + Zero CPUs doesn't make any sense anyway. - client/ - cpu_sched.cpp - work_fetch.cpp + client/ + cpu_sched.cpp + work_fetch.cpp Rom 9 Feb 2010 - client: some more CPU detection cleanup. @@ -1145,3 +1145,14 @@ Rom 10 Feb 2010 clientgui/ BOINCTaskBar.cpp, .h + +David 11 Feb 2009 + - client: if a project is anonymous platform and it has no + app versions that use a resource, + don't request work from it for that resource. + + client/ + work_fetch.cpp,h + client_state.cpp + html/inc/ + prefs.inc diff --git a/client/client_state.cpp b/client/client_state.cpp index 815a7e4b50..8d20648411 100644 --- a/client/client_state.cpp +++ b/client/client_state.cpp @@ -287,7 +287,9 @@ int CLIENT_STATE::init() { // check_anonymous(); - cpu_benchmarks_set_defaults(); // for first time, make sure p_fpops nonzero + // first time, set p_fpops nonzero to avoid div by zero + // + cpu_benchmarks_set_defaults(); // Parse the client state file, // ignoring any tags (and associated stuff) @@ -301,7 +303,7 @@ int CLIENT_STATE::init() { parse_account_files_venue(); - // fill in avp->flops for anonymous project + // fill in avp->flops for anonymous platform projects // for (i=0; i::iterator project_iter; diff --git a/client/work_fetch.cpp b/client/work_fetch.cpp index 0a613753e7..50ec140bc0 100644 --- a/client/work_fetch.cpp +++ b/client/work_fetch.cpp @@ -285,6 +285,7 @@ PROJECT* RSC_WORK_FETCH::choose_project(int criterion) { if (!p->pwf.can_fetch_work) continue; if (!project_state(p).may_have_work) continue; RSC_PROJECT_WORK_FETCH& rpwf = project_state(p); + if (rpwf.anon_skip) continue; switch (criterion) { case FETCH_IF_MINOR_SHORTFALL: if (rpwf.overworked()) continue; @@ -360,6 +361,7 @@ PROJECT* RSC_WORK_FETCH::choose_project(int criterion) { void RSC_WORK_FETCH::set_request(PROJECT* p, bool allow_overworked) { RSC_PROJECT_WORK_FETCH& w = project_state(p); if (!w.may_have_work) return; + if (w.anon_skip) return; if (!allow_overworked && w.overworked()) return; if (shortfall) { if (wacky_dcf(p)) { @@ -1106,6 +1108,31 @@ void WORK_FETCH::init() { if (config.zero_debts) { zero_debts(); } + + // see what resources anon platform projects can use + // + unsigned int i, j; + for (i=0; ianonymous_platform) continue; + p->cpu_pwf.anon_skip = true; + p->cuda_pwf.anon_skip = true; + p->ati_pwf.anon_skip = true; + for (j=0; jproject != p) continue; + if (avp->ncudas) { + p->cuda_pwf.anon_skip = false; + break; + } else if (avp->natis) { + p->ati_pwf.anon_skip = false; + break; + } else { + p->cpu_pwf.anon_skip = false; + break; + } + } + } } //////////////////////// diff --git a/client/work_fetch.h b/client/work_fetch.h index a42f2dd87b..092d2c2979 100644 --- a/client/work_fetch.h +++ b/client/work_fetch.h @@ -53,6 +53,9 @@ struct RSC_PROJECT_WORK_FETCH { double queue_est; // an estimate of instance-secs of queued work; // a temp used in computing overall debts + bool anon_skip; + // set if this project is anonymous platform + // and it has no app version that uses this resource // the following are used by rr_simulation() // diff --git a/doc/index.php b/doc/index.php index cd9456228e..16dfa46287 100644 --- a/doc/index.php +++ b/doc/index.php @@ -221,6 +221,7 @@ function language_form() { //."