I love KVM - not only because I'm heavily hacking on it now, also because it is so easy to trigger various kinds of guest issues with it (SMP host + threaded virtual CPUs => true SMP guest - and if you want to watch fancy things happen, just load one host core).
Here is one I found that way:
void fastcall __ipipe_sync_stage(unsigned long syncmask)
{
[ ... ]
while ((mask = (ipipe_this_cpudom_var(irqpend_himask) & syncmask)) !=
0) {
level = __ipipe_ffnz(mask);
while ((submask = ipipe_this_cpudom_var(irqpend_lomask)[level])
!= 0) {
rank = __ipipe_ffnz(submask);
irq = (level << IPIPE_IRQ_ISHIFT) + rank;
if (test_bit(IPIPE_LOCK_FLAG, &ipd->irqs[irq].control))
{
__clear_bit(rank,
&ipipe_this_cpudom_var(irqpend_lomask)[level]);
continue;
}
__clear_bit(rank,
&ipipe_this_cpudom_var(irqpend_lomask)[level]);
if (ipipe_this_cpudom_var(irqpend_lomask)[level] == 0)
__clear_bit(level,
&ipipe_this_cpudom_var(irqpend_himask));
[ ... ]
Who sees the deadlock? 100 points for the right answer! But be quick,
I'm already hacking on a fix. :)
Jan
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
