# kernel message checker module # # Copyright (c) 2013, Intel Corporation # # Author: Johannes Berg # # This software may be distributed under the terms of the BSD license. # See README for more details. # """ Tests for kernel messages to find if there were any issues in them. """ import re lockdep_messages = [ 'possible circular locking dependency', '.*-safe -> .*unsafe lock order detected', 'possible recursive locking detected', 'inconsistent lock state', 'possible irq lock inversion dependency', 'suspicious RCU usage', ] lockdep = r'(\[\s*)?(INFO|WARNING): (%s)|\*\*\* DEADLOCK \*\*\*' % ('|'.join(lockdep_messages), ) issue = re.compile('(\[[0-9 .]*\] )?(WARNING:|BUG:|UBSAN:|%s|RTNL: assertion failed).*' % lockdep) def check_kernel(logfile): for line in open(logfile, 'r'): if issue.match(line): return False return True