diff options
| -rw-r--r-- | meta/classes/buildstats.bbclass | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass index 4fa6981dd6..71469e401d 100644 --- a/meta/classes/buildstats.bbclass +++ b/meta/classes/buildstats.bbclass | |||
| @@ -20,17 +20,33 @@ def get_cputime(): | |||
| 20 | fields = f.readline().rstrip().split()[1:] | 20 | fields = f.readline().rstrip().split()[1:] |
| 21 | return sum(int(field) for field in fields) | 21 | return sum(int(field) for field in fields) |
| 22 | 22 | ||
| 23 | def set_timedata(var, d, server_time=None): | 23 | def set_timedata(var, d, server_time): |
| 24 | import time | 24 | cputime = get_cputime() |
| 25 | if server_time: | 25 | proctime = get_process_cputime(os.getpid()) |
| 26 | time = server_time | 26 | d.setVar(var, (server_time, cputime, proctime)) |
| 27 | |||
| 28 | def get_timedata(var, d, end_time): | ||
| 29 | timedata = d.getVar(var, False) | ||
| 30 | if timedata is None: | ||
| 31 | return | ||
| 32 | oldtime, oldcpu, oldproc = timedata | ||
| 33 | procdiff = get_process_cputime(os.getpid()) - oldproc | ||
| 34 | cpudiff = get_cputime() - oldcpu | ||
| 35 | timediff = end_time - oldtime | ||
| 36 | if cpudiff > 0: | ||
| 37 | cpuperc = float(procdiff) * 100 / cpudiff | ||
| 27 | else: | 38 | else: |
| 28 | time = time.time() | 39 | cpuperc = None |
| 40 | return timediff, cpuperc | ||
| 41 | |||
| 42 | def set_buildtimedata(var, d): | ||
| 43 | import time | ||
| 44 | time = time.time() | ||
| 29 | cputime = get_cputime() | 45 | cputime = get_cputime() |
| 30 | proctime = get_process_cputime(os.getpid()) | 46 | proctime = get_process_cputime(os.getpid()) |
| 31 | d.setVar(var, (time, cputime, proctime)) | 47 | d.setVar(var, (time, cputime, proctime)) |
| 32 | 48 | ||
| 33 | def get_timedata(var, d, server_time=None): | 49 | def get_buildtimedata(var, d): |
| 34 | import time | 50 | import time |
| 35 | timedata = d.getVar(var, False) | 51 | timedata = d.getVar(var, False) |
| 36 | if timedata is None: | 52 | if timedata is None: |
| @@ -38,10 +54,7 @@ def get_timedata(var, d, server_time=None): | |||
| 38 | oldtime, oldcpu, oldproc = timedata | 54 | oldtime, oldcpu, oldproc = timedata |
| 39 | procdiff = get_process_cputime(os.getpid()) - oldproc | 55 | procdiff = get_process_cputime(os.getpid()) - oldproc |
| 40 | cpudiff = get_cputime() - oldcpu | 56 | cpudiff = get_cputime() - oldcpu |
| 41 | if server_time: | 57 | end_time = time.time() |
| 42 | end_time = server_time | ||
| 43 | else: | ||
| 44 | end_time = time.time() | ||
| 45 | timediff = end_time - oldtime | 58 | timediff = end_time - oldtime |
| 46 | if cpudiff > 0: | 59 | if cpudiff > 0: |
| 47 | cpuperc = float(procdiff) * 100 / cpudiff | 60 | cpuperc = float(procdiff) * 100 / cpudiff |
| @@ -81,7 +94,7 @@ python run_buildstats () { | |||
| 81 | # set the buildname | 94 | # set the buildname |
| 82 | ######################################################################## | 95 | ######################################################################## |
| 83 | bb.utils.mkdirhier(bsdir) | 96 | bb.utils.mkdirhier(bsdir) |
| 84 | set_timedata("__timedata_build", d) | 97 | set_buildtimedata("__timedata_build", d) |
| 85 | build_time = os.path.join(bsdir, "build_stats") | 98 | build_time = os.path.join(bsdir, "build_stats") |
| 86 | # write start of build into build_time | 99 | # write start of build into build_time |
| 87 | with open(build_time, "a") as f: | 100 | with open(build_time, "a") as f: |
| @@ -99,7 +112,7 @@ python run_buildstats () { | |||
| 99 | ######################################################################## | 112 | ######################################################################## |
| 100 | # Write build statistics for the build | 113 | # Write build statistics for the build |
| 101 | ######################################################################## | 114 | ######################################################################## |
| 102 | timedata = get_timedata("__timedata_build", d) | 115 | timedata = get_buildtimedata("__timedata_build", d) |
| 103 | if timedata: | 116 | if timedata: |
| 104 | time, cpu = timedata | 117 | time, cpu = timedata |
| 105 | # write end of build and cpu used into build_time | 118 | # write end of build and cpu used into build_time |
