Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. 11:48 < soren> Ok, so the problem is this:
  2. 11:48 < soren> Say there's a filter that's already active.
  3. 11:48 < soren> I want to change it, so I redefine it.
  4. 11:49 < soren> Because it's active, nwfilter wants to go apply the changes I made to all the running VM's.
  5. 11:49 < soren> It does so by calling qemudVMFilterRebuild.
  6. 11:50 < soren> qemudVMFilterRebuild acquires the global qemu driver lock (by calling qemuDriverLock(driver)).
  7. 11:50 < soren> ..and runs a callback for each VM known to the driver.
  8. 11:50 < soren> That's fine, and it works great.
  9. 11:51 < soren> Well, until you're starting another VM at about the same time.
  10. 11:51 < soren> If this other VM has a filter defined (any filter?) it calls into nwfilter to instantiate the filter.
  11. 11:52 < soren> ..but NWFilter's goFindMeTheFilterByName locks the filters as it goes through them, looking for one with the right name.
  12. 11:52 < soren> ..but the lock is still held by the other nwfilter thread trying to apply my changes..
  13. 11:52 < soren> ..and that isn't going to finish until it can apply them to the QEmu domains..
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement