[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Add SCHEDOP_block_on

On Tue, 2006-03-14 at 18:40 +0000, Keir Fraser wrote:
> On 12 Mar 2006, at 08:40, Keir Fraser wrote:
> > I had some more of a think about this and actually there is a case for 
> > using a polling interface of this type in the pcifront driver. That 
> > sends a PCI-config-space request to the backend driver while it has 
> > interrupts disabled and currently has to spin on a software flag. At 
> > least the spin is usually short, but it's not a nice thing to have to 
> > do.
> >
> > I'll have another look at your patch next week and reconsider.
> I just applied an extended version of your patch as changeset 9238 
> (c445d4...) to the xen-unstable repository. The changeset comment there 
> says it all, really. It should end up in the public repo in the next 
> couple of hours if I haven't screwed anything up and the automatic 
> regression tests pass.
> Until 3.0.2 is called (which could be within a week, depending on when 
> 2.6.16 is released) the implementation and interfaces can be modified 
> -- please let me know asap if anything needs changing! You can see a 
> usage example of the new interface in the pcifront driver. The code for 
> that is in the same changeset.
> Oh yes, and documentation isn't yet updated. The patch for that will be 
> a bit bigger than your original one. I'll look into that tomorrow. :-)


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...


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.