Deadlock on stable fixed on head

Fabien Thomas fabien.thomas at
Mon Mar 14 10:38:18 UTC 2011

I'm debugging a deadlock on FreeBSD that is not on head but on 7.3, 8.2...
Maybe someone will have an idea on what patch fixed it.

1 - On a UP machine (Multicore without SMP option or UP with SMP).
2 - When using device apic (more on this later)
3 - Using DEVICE_POLLING (more on this later)
4- HZ set to 2000

Launching a CPU intensive task freeze the box (burnP6 from cpuburn port)
nearly 100% chance of success.

This can be reproduced on very different HW so it is software related.
Reproduced on i386 / amd64.

Current analysis status:
1 - having >1 CPU and SMP enabled avoid the deadlock
2 - apic enable the problem when using critical_exit (using isa/clock does
     not have critical_exit and then works)
3 - this is not the polling itself but the scheduling of the thread only
4 - no idea

So to sum up it seems related to a scheduling issue.
I've got some info from a 8.2 that can enter ddb (7.3 will not enter ddb) [1]

If someone have an idea / fixed something related, etc... tell me :)


Fabien Thomas

More information about the freebsd-current mailing list