llkd: Add cma_alloc stack symbol checking
Add ro.llk.stack to list a set of symbols that should rarely happen but if persistent in multiple checks, indicates a live lock condition. At ro.llk.stack.timeout_ms the process is sent a kill, if it remains, then panic the kernel. There is no ABA detection in the paths, the condition for the stack symbol being present instantaneously must be its rarity of being caught. If a livelock occurs in the path of the symbol, then it is possible more than one path could be stuck in the state, but the best candidate symbols are found underneath a lock resulting in only one process being the culprit, and the best aim. There may be processes that induce a look of persistence, if so the symbol is not a candidate for checking. Adding cma_alloc to the default list. It is not behind a lock, so multiple references can happen. The hope is the first one to spin or wait gets the kill, but there is the possibility that both will get the kill. It is unknown if this will escalate to a kernel panic at this time. It is also suspect that a RT task could cause this by starving the background worker, and llkd could suffer a similar fate as it is SCHED_BATCH policy. Test: compile Bug: 33808187 Bug: 111910505 Bug: 80502612 Change-Id: I49c9f0646d627869144c5c1ca32272515ed60f7b
Loading
Please register or sign in to comment