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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to