From: Saul Wold <sgw@linux.intel.com>
To: "Jean-François Dagenais" <jeff.dagenais@gmail.com>
Cc: marc.ferland@gmail.com,
"Jean-François Dagenais" <dagenaisj@sonatest.com>,
poky@yoctoproject.org, roym@sonatest.com
Subject: Re: [PATCH] buildstats: tolerate absence of /proc/diskstats
Date: Tue, 17 Jan 2012 12:58:02 -0800 [thread overview]
Message-ID: <4F15E0DA.4000406@linux.intel.com> (raw)
In-Reply-To: <1326676265-31778-1-git-send-email-jeff.dagenais@gmail.com>
On 01/15/2012 05:11 PM, Jean-François Dagenais wrote:
> From: Jean-François Dagenais<dagenaisj@sonatest.com>
>
> In OpenVZ containers (and probably lx containers as well),
> the diskstats entry is not even present. Use the "NoLogicalDrive"
> introduced by Elizabeth Flanagan in such case.
>
> This allows the bitbaking to occure within such containers.
>
> Signed-off-by: Jean-François Dagenais<jeff.dagenais@gmail.com>
> ---
> meta/classes/buildstats.bbclass | 25 +++++++++++++++----------
> 1 files changed, 15 insertions(+), 10 deletions(-)
>
> diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass
> index 4cd8fe6..9690a04 100644
> --- a/meta/classes/buildstats.bbclass
> +++ b/meta/classes/buildstats.bbclass
> @@ -61,11 +61,13 @@ def set_device(e):
> # we do not collect diskstats as the method to collect meaningful statistics
> # for these fs types requires a bit more research.
> ############################################################################
> - for line in open("/proc/diskstats", "r"):
> - if majordev == int(line.split()[0]) and minordev == int(line.split()[1]):
> - rdev=line.split()[2]
> - else:
> - rdev="NoLogicalDevice"
> + rdev="NoLogicalDevice"
> + try:
> + for line in open("/proc/diskstats", "r"):
> + if majordev == int(line.split()[0]) and minordev == int(line.split()[1]):
> + rdev=line.split()[2]
> + except:
> + pass
> file = open(e.data.getVar('DEVFILE', True), "w")
> file.write(rdev)
> file.close()
> @@ -82,12 +84,15 @@ def get_diskstats(dev):
> # For info on what these are, see kernel doc file iostats.txt
> ############################################################################
> DSTAT_KEYS = ['ReadsComp', 'ReadsMerged', 'SectRead', 'TimeReads', 'WritesComp', 'SectWrite', 'TimeWrite', 'IOinProgress', 'TimeIO', 'WTimeIO']
> - for x in open("/proc/diskstats", "r"):
> - if dev in x:
> - diskstats_val = x.rstrip().split()[4:]
> - diskstats = dict(itertools.izip(DSTAT_KEYS, diskstats_val))
> + try:
> + for x in open("/proc/diskstats", "r"):
> + if dev in x:
> + diskstats_val = x.rstrip().split()[4:]
> + except IOError as e:
> + return
> + diskstats = dict(itertools.izip(DSTAT_KEYS, diskstats_val))
> return diskstats
> -
> +
> def set_diskdata(var, dev, data):
> data.setVar(var, get_diskstats(dev))
>
Merged into OE-Core
For future reference, please send patches for the meta layer to
openembedded-core@lists.openembedded.org, as the meta layer is really
OE-Core
Thanks
Sau!
prev parent reply other threads:[~2012-01-17 20:58 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-16 1:11 [PATCH] buildstats: tolerate absence of /proc/diskstats Jean-François Dagenais
2012-01-17 20:58 ` Saul Wold [this message]
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=4F15E0DA.4000406@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=dagenaisj@sonatest.com \
--cc=jeff.dagenais@gmail.com \
--cc=marc.ferland@gmail.com \
--cc=poky@yoctoproject.org \
--cc=roym@sonatest.com \
/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.