I'm not 100% sure, but I believe that jiffies does not get updated
while
interrupts are disabled (the timer is an interrupt in a domU, right?).
I
could never verify from the source if this is the case, but if the pci
backend disappears or stops responding while the pci frontend is
waiting
for an operation to complete, this could be a problem for the new code
in pcifront. I've been preparing my patch for late binding in the pci
backend and if I unload the pci backend module (yes, unloading will
work
with my patch!), the pci frontend domain appears to hang (inside of the
while loop in do_pci_op()) whereas prior to the HYPERVISOR_poll call
and
jiffies check, the ttl would count down to 0 and error out of the spin
and clean-up gracefully. I chose my ttl method over jiffies in the
first
place because of this problem with jiffies not getting updated. What
would be the best way to fix this problem? The ttl method I had is not
that elegant...