All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <sgw@linux.intel.com>
To: Alex DAMIAN <alexandru.damian@intel.com>,
	 openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 3/3] buildstats: use TaskBase time for elapsed time
Date: Tue, 18 Mar 2014 15:28:48 -0700	[thread overview]
Message-ID: <5328C8A0.1010100@linux.intel.com> (raw)
In-Reply-To: <6f3acb92219b832f847d4e59342c8c4582ac5b78.1395068545.git.alexandru.damian@intel.com>

On 03/17/2014 08:04 AM, Alex DAMIAN wrote:
> From: Marius Avram <marius.avram@intel.com>
>
> To avoid any further inconsistencies between buildstats and buildinfohelper
> from toaster, buildstats will measure task duration using the time field
> from within the TaskBase events: TaskStarted and TaskSucceeded/TaskFailed.
>

This patch seems to be causing some problems:

> ERROR: Execution of event handler 'run_buildstats' failed
> Traceback (most recent call last):
>   File "run_buildstats(e)", line 72, in run_buildstats(e=<bb.build.TaskStarted object at 0x6e45590>)
> AttributeError: 'TaskStarted' object has no attribute 'time'
>
> ERROR: Execution of event handler 'run_buildstats' failed
> Traceback (most recent call last):
>   File "run_buildstats(e)", line 88, in run_buildstats(e=<bb.build.TaskSucceeded object at 0x6e40190>)
>   File "buildstats.bbclass", line 5, in write_task_data(status='passed', logfile='/home/sgw/yocto/builds/world/tmp/buildstats/linux-yocto-qemux86-64/201403181525/linux-yocto-3.10.32+gitAUTOINC+7b3b87d4d5_78afd3095c-r0/do_clean', dev='sda5', e=<bb.build.TaskSucceeded object at 0x6e40190>)
> IOError: [Errno 2] No such file or directory: '/home/sgw/yocto/builds/world/tmp/buildstats/linux-yocto-qemux86-64/201403181525/linux-yocto-3.10.32+gitAUTOINC+7b3b87d4d5_78afd3095c-r0/do_clean'
>
> ERROR: Execution of event handler 'run_buildstats' failed
> Traceback (most recent call last):
>   File "run_buildstats(e)", line 72, in run_buildstats(e=<bb.build.TaskStarted object at 0x74f59d0>)
> AttributeError: 'TaskStarted' object has no attribute 'time'
>
> ERROR: Execution of event handler 'run_buildstats' failed
> Traceback (most recent call last):
>   File "run_buildstats(e)", line 88, in run_buildstats(e=<bb.build.TaskSucceeded object at 0x6e48dd0>)
>   File "buildstats.bbclass", line 5, in write_task_data(status='passed', logfile='/home/sgw/yocto/builds/world/tmp/buildstats/linux-yocto-qemux86-64/201403181525/linux-yocto-3.10.32+gitAUTOINC+7b3b87d4d5_78afd3095c-r0/do_cleansstate', dev='sda5', e=<bb.build.TaskSucceeded object at 0x6e48dd0>)



Sau!


> Signed-off-by: Marius Avram <marius.avram@intel.com>
> ---
>   meta/classes/buildstats.bbclass | 23 +++++++++++++++--------
>   1 file changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass
> index 72fff11..89ae72c 100644
> --- a/meta/classes/buildstats.bbclass
> +++ b/meta/classes/buildstats.bbclass
> @@ -109,14 +109,17 @@ def get_diskdata(var, dev, data):
>           diskdata["End"+key] = str(int(newdiskdata[key]))
>       return diskdata
>
> -def set_timedata(var, data):
> +def set_timedata(var, data, server_time=None):
>       import time
> -    time = time.time()
> +    if server_time:
> +        time = server_time
> +    else:
> +        time = time.time()
>       cputime = get_cputime()
>       proctime = get_process_cputime(os.getpid())
>       data.setVar(var, (time, cputime, proctime))
>
> -def get_timedata(var, data):
> +def get_timedata(var, data, server_time=None):
>       import time
>       timedata = data.getVar(var, False)
>       if timedata is None:
> @@ -124,7 +127,11 @@ def get_timedata(var, data):
>       oldtime, oldcpu, oldproc = timedata
>       procdiff = get_process_cputime(os.getpid()) - oldproc
>       cpudiff = get_cputime() - oldcpu
> -    timediff = time.time() - oldtime
> +    if server_time:
> +        end_time = server_time
> +    else:
> +        end_time = time.time()
> +    timediff = end_time - oldtime
>       if cpudiff > 0:
>           cpuperc = float(procdiff) * 100 / cpudiff
>       else:
> @@ -136,7 +143,7 @@ def write_task_data(status, logfile, dev, e):
>       bsdir = os.path.join(e.data.getVar('BUILDSTATS_BASE', True), bn)
>       taskdir = os.path.join(bsdir, e.data.expand("${PF}"))
>       file = open(os.path.join(logfile), "a")
> -    timedata = get_timedata("__timedata_task", e.data)
> +    timedata = get_timedata("__timedata_task", e.data, e.time)
>       if timedata:
>           elapsedtime, cpu = timedata
>           file.write(bb.data.expand("${PF}: %s: Elapsed time: %0.2f seconds \n" %
> @@ -160,7 +167,7 @@ def write_task_data(status, logfile, dev, e):
>   	    file.write("Status: PASSED \n")
>       else:
>           file.write("Status: FAILED \n")
> -    file.write("Ended: %0.2f \n" % time.time())
> +    file.write("Ended: %0.2f \n" % e.time)
>       file.close()
>
>   python run_buildstats () {
> @@ -234,7 +241,7 @@ python run_buildstats () {
>           taskdir = os.path.join(bsdir, e.data.expand("${PF}"))
>           if device != "NoLogicalDevice":
>               set_diskdata("__diskdata_task", device, e.data)
> -        set_timedata("__timedata_task", e.data)
> +        set_timedata("__timedata_task", e.data, e.time)
>           try:
>               bb.utils.mkdirhier(taskdir)
>           except:
> @@ -242,7 +249,7 @@ python run_buildstats () {
>           # write into the task event file the name and start time
>           file = open(os.path.join(taskdir, e.task), "a")
>           file.write("Event: %s \n" % bb.event.getName(e))
> -        file.write("Started: %0.2f \n" % time.time())
> +        file.write("Started: %0.2f \n" % e.time)
>           file.close()
>
>       elif isinstance(e, bb.build.TaskSucceeded):
>


  reply	other threads:[~2014-03-18 22:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-17 15:04 [PATCH 0/3] toaster-related patchset Alex DAMIAN
2014-03-17 15:04 ` [PATCH 1/3] toaster.bbclass: read the data needed for license manifest path Alex DAMIAN
2014-03-17 15:04 ` [PATCH 2/3] sstate: list missing files for toaster Alex DAMIAN
2014-03-17 15:04 ` [PATCH 3/3] buildstats: use TaskBase time for elapsed time Alex DAMIAN
2014-03-18 22:28   ` Saul Wold [this message]
2014-03-18 23:15     ` Richard Purdie
2014-03-19  9:34       ` Damian, Alexandru

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5328C8A0.1010100@linux.intel.com \
    --to=sgw@linux.intel.com \
    --cc=alexandru.damian@intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.