diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 5b885cddd7..9b78530ad3 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -2127,6 +2127,12 @@ class CookerParser(object):
         self.bb_caches = bb.cache.MulticonfigCache(self.cfgbuilder, self.cfghash, cooker.caches_array)
         self.fromcache = set()
         self.willparse = set()
+
+        validate_count = sum(len(self.mcfilelist[mc]) for mc in self.cooker.multiconfigs)
+        validate_chunk = int(max(validate_count / 100, 1))
+
+        bb.event.fire(bb.event.CheckCacheValidityStarted(validate_count), self.cfgdata)
+        num_validated = 0
         for mc in self.cooker.multiconfigs:
             for filename in self.mcfilelist[mc]:
                 appends = self.cooker.collections[mc].get_file_appends(filename)
@@ -2135,6 +2141,10 @@ class CookerParser(object):
                     self.willparse.add((mc, self.bb_caches[mc], filename, appends, layername))
                 else:
                     self.fromcache.add((mc, self.bb_caches[mc], filename, appends, layername))
+                num_validated += 1
+                if num_validated % validate_chunk == 0:
+                    bb.event.fire(bb.event.CheckCacheValidityProgress(num_validated, validate_count), self.cfgdata)
+        bb.event.fire(bb.event.CheckCacheValidityCompleted(validate_count), self.cfgdata)

         self.total = len(self.fromcache) + len(self.willparse)
         self.toparse = len(self.willparse)
diff --git a/lib/bb/event.py b/lib/bb/event.py
index 952c85c0bd..e9834d01c7 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -639,6 +639,21 @@ class CacheLoadCompleted(OperationCompleted):
         OperationCompleted.__init__(self, total, "Loading cache Completed")
         self.num_entries = num_entries

+class CheckCacheValidityStarted(OperationStarted):
+    """Started checking whether cached entries are valid"""
+    def __init__(self, total):
+        super().__init__("Checking cache validity started")
+        self.total = total
+
+class CheckCacheValidityProgress(OperationProgress):
+    def __init__(self, current, total):
+        super().__init__(current, total, "Checking cache validity")
+
+class CheckCacheValidityCompleted(OperationCompleted):
+    """Finished checking whether cached entries are valid"""
+    def __init__(self, total):
+        super().__init__(total, "Checking cache validity completed")
+
 class TreeDataPreparationStarted(OperationStarted):
     """Tree data preparation started"""
     def __init__(self):
