diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2016-11-29 17:47:45 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-12-07 10:40:56 +0000 |
commit | f065ac17d0031dca6309ddbff18c8792630de865 (patch) | |
tree | b6542fedbc351df572fa840f8a6a58aec7d5eca6 /lib/bb/monitordisk.py | |
parent | 3c943e989964382c0b819d92de26a0c914ebed33 (diff) | |
download | bitbake-contrib-f065ac17d0031dca6309ddbff18c8792630de865.tar.gz |
monitordisk: add event
The current disk usage is interesting and may be worth logging over
time as part of the build statistics. Instead of re-implementing the
code and the configuration option (BB_DISKMON_DIRS), the information
gathered by monitordisk.py is made available to buildstats.bbclass via
a new event.
This has pros and cons:
- there is already a useful default configuration for "interesting" directories
- no code duplication
- on the other hand, users cannot configure recording separately from
monitoring (probably not that important)
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/monitordisk.py')
-rw-r--r-- | lib/bb/monitordisk.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/bb/monitordisk.py b/lib/bb/monitordisk.py index d3d210684..833cd3d34 100644 --- a/lib/bb/monitordisk.py +++ b/lib/bb/monitordisk.py @@ -205,6 +205,7 @@ class diskMonitor: """ Take action for the monitor """ if self.enableMonitor: + diskUsage = {} for k, attributes in self.devDict.items(): path, action = k dev, minSpace, minInode = attributes @@ -214,6 +215,11 @@ class diskMonitor: # The available free space, integer number freeSpace = st.f_bavail * st.f_frsize + # Send all relevant information in the event. + freeSpaceRoot = st.f_bfree * st.f_frsize + totalSpace = st.f_blocks * st.f_frsize + diskUsage[dev] = bb.event.DiskUsageSample(freeSpace, freeSpaceRoot, totalSpace) + if minSpace and freeSpace < minSpace: # Always show warning, the self.checked would always be False if the action is WARN if self.preFreeS[k] == 0 or self.preFreeS[k] - freeSpace > self.spaceInterval and not self.checked[k]: @@ -257,4 +263,6 @@ class diskMonitor: self.checked[k] = True rq.finish_runqueue(True) bb.event.fire(bb.event.DiskFull(dev, 'inode', freeInode, path), self.configuration) + + bb.event.fire(bb.event.MonitorDiskEvent(diskUsage), self.configuration) return |