summaryrefslogtreecommitdiffstats
path: root/lib/bb/monitordisk.py
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2016-11-29 17:47:45 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-12-07 10:40:56 +0000
commitf065ac17d0031dca6309ddbff18c8792630de865 (patch)
treeb6542fedbc351df572fa840f8a6a58aec7d5eca6 /lib/bb/monitordisk.py
parent3c943e989964382c0b819d92de26a0c914ebed33 (diff)
downloadbitbake-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.py8
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