Opened 17 years ago

Last modified 15 years ago

#512 closed Defect

CPU Time not updated under linux — at Initial Version

Reported by: tstrunk Owned by: Bruce Allen
Priority: Minor Milestone: Undetermined
Component: BOINC - API Version:
Keywords: cpu_time Cc:

Description

Since the beginning of november (first noticed there), the cpu time update in the client doesn't work anymore under linux with our app. When downgrading the boinc libs of our client app to for example rev. 13231, it works again.

I added this line to boinc_checkpoint_completed in boinc_api.C:1010
fprintf(stderr,"in Checkpoint complete: cur_cpu = %g, last_wu = %g, last checkp = %g\n",cur_cpu,last_wu_cpu_time,last_checkpoint_cpu_time);
(before) update_app_progress(last_checkpoint_cpu_time, last_checkpoint_cpu_time);

and this one to timer_handler: 852
fprintf(stderr,"cur cpu = %g, initial_wu_cpu_time=%g , last_wu = %g , last_checkpoint = %g\n",cur_cpu,initial_wu_cpu_time,last_wu_cpu_time,last_checkpoint_cpu_time); (also before) update_app_progress(last_wu_cpu_time, last_checkpoint_cpu_time);

From this I got the output:
cur cpu = 0, initial_wu_cpu_time=0 , last_wu = 0 , last_checkpoint = 0
in Checkpoint complete: cur_cpu = 58.4437, last_wu = 58.4437, last checkp = 58.4437
cur cpu = 0, initial_wu_cpu_time=0 , last_wu = 0 , last_checkpoint = 58.4437

So for me this sounds like boinc_worker_thread_cpu_time() sometimes works and sometimes doesn't. I think, this is the case, because boinc_checkpoint_completed is called from the real worker thread, while timer_handler is called from "Somewhere Else (TM)"

A slight guess at what could have produced this behaviour is this changeset:
http://boinc.berkeley.edu/trac/changeset/13880/trunk/boinc/api/boinc_api.C

Change History (0)

Note: See TracTickets for help on using tickets.