On Wed, 7 Jun 2017, Vlastimil Babka wrote:
Hmm I'd expect such spin lock to be reported together with mmap_sem in
the debugging "locks held" message?
My bisection of the problem is about half done. My latest good version is commit
7b8cd33 and the latest bad one is 2ea659a. Only about 7 steps to go.
Hmm, your bisection will most likely just find commit 338a16ba15495
which added the cond_resched() at mm/khugepaged.c:655. CCing David who
added it.
I agree it's probably going to bisect to 338a16ba15495 since it's the
cond_resched() at the line number reported, but I think there must be
something else going on. I think the list of locks held by khugepaged is
correct because it matches with the implementation. The preempt_count(),
as suggested by Andrew, does not. If this is reproducible, I'd like to
know what preempt_count() is.