mirror of https://github.com/BOINC/boinc.git
- client: don't promote multithread jobs ahead of EDF jobs
svn path=/trunk/boinc/; revision=21563
This commit is contained in:
parent
285a41c7a4
commit
5a8142a23c
|
@ -3690,8 +3690,14 @@ Rytis 17 May 2010
|
|||
prefs_util.inc
|
||||
|
||||
Bernd 18 May 2010
|
||||
fix query in send_old_work()
|
||||
- scheduler: fix query in send_old_work()
|
||||
from Oliver Bock
|
||||
|
||||
sched/
|
||||
sched_locality.cpp
|
||||
|
||||
David 18 May 2010
|
||||
- client: don't promote multithread jobs ahead of EDF jobs
|
||||
|
||||
client/
|
||||
cpu_sched.cpp
|
||||
|
|
|
@ -167,10 +167,22 @@ int ACTIVE_TASK::get_shmem_seg_name() {
|
|||
//
|
||||
if (!boinc_file_exists(init_data_path)) {
|
||||
FILE* f = boinc_fopen(init_data_path, "w");
|
||||
if (f) fclose(f);
|
||||
if (f) {
|
||||
fclose(f);
|
||||
} else {
|
||||
msg_printf(wup->project, MSG_INTERNAL_ERROR,
|
||||
"error: can't open file for shmem seg name"
|
||||
);
|
||||
}
|
||||
}
|
||||
shmem_seg_name = ftok(init_data_path, 1);
|
||||
if (shmem_seg_name == -1) return ERR_SHMEM_NAME;
|
||||
if (shmem_seg_name == -1) {
|
||||
msg_printf(wup->project, MSG_INTERNAL_ERROR,
|
||||
"error: can't open file for shmem seg name: %d", errno
|
||||
);
|
||||
perror("ftok");
|
||||
return ERR_SHMEM_NAME;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -822,6 +822,7 @@ static inline bool in_ordered_scheduled_results(ACTIVE_TASK* atp) {
|
|||
|
||||
// scan the runnable list, keeping track of CPU usage X.
|
||||
// if find a MT job J, and X < ncpus, move J before all non-MT jobs
|
||||
// But don't promote a MT job ahead of a job in EDF
|
||||
//
|
||||
static void promote_multi_thread_jobs(vector<RESULT*>& runnable_jobs) {
|
||||
double cpus_used = 0;
|
||||
|
@ -831,6 +832,7 @@ static void promote_multi_thread_jobs(vector<RESULT*>& runnable_jobs) {
|
|||
if (cur == runnable_jobs.end()) break;
|
||||
if (cpus_used >= gstate.ncpus) break;
|
||||
RESULT* rp = *cur;
|
||||
if (rp->rr_sim_misses_deadline) break;
|
||||
double nc = rp->avp->avg_ncpus;
|
||||
if (nc > 1) {
|
||||
if (first_non_mt != runnable_jobs.end()) {
|
||||
|
|
|
@ -139,6 +139,9 @@ struct COPROC {
|
|||
for (int i=0; i<MAX_COPROC_INSTANCES; i++) {
|
||||
device_nums[i] = 0;
|
||||
running_graphics_app[i] = true;
|
||||
available_ram[i] = 0;
|
||||
available_ram_fake[i] = 0;
|
||||
available_ram_unknown[i] = true;
|
||||
}
|
||||
}
|
||||
COPROC(const char* t){
|
||||
|
|
Loading…
Reference in New Issue