1. 16 Dec, 2012 1 commit
  2. 03 Aug, 2012 1 commit
  3. 01 Aug, 2012 1 commit
  4. 26 Jul, 2012 4 commits
  5. 23 Jul, 2012 1 commit
  6. 06 Jul, 2012 1 commit
  7. 02 Jun, 2012 1 commit
  8. 01 Mar, 2012 1 commit
  9. 23 Feb, 2012 1 commit
  10. 20 Feb, 2012 1 commit
  11. 31 Jan, 2012 7 commits
  12. 27 Jan, 2012 3 commits
  13. 10 Jan, 2012 1 commit
  14. 15 Dec, 2011 3 commits
  15. 09 Dec, 2011 2 commits
  16. 01 Dec, 2011 1 commit
    • Jonathan Davies's avatar
      tools/ocaml: Release the global lock during some hypercalls · 66fb4e3e
      Jonathan Davies authored
      Since libxc is re-entrant, there is no need for the OCaml bindings to
      prevent more than one thread from entering libxc concurrently.
      
      Previously, the OCaml bindings had prevented re-entrancy by not using
      caml_{enter,leave}_blocking_section in the C stubs. The absence of
      these calls meant that the global lock remained held during
      hypercalls. This caused multi-threaded applications to completely lock
      up during long-running hypercalls.
      
      Calls to these functions were present but commented out in the OCaml
      bindings some years ago when libxc was not fully re-entrant.
      
      Instead, we now do call caml_{enter,leave}_blocking_section in all the
      places it used to be commented out, meaning that the global lock is
      released during those hypercalls. We also no longer assert the
      XC_OPENFLAG_NON_REENTRANT flag when calling xc_interface_open because
      the caller no longer does re-entrancy prevention at those places.
      
      This patch has now gone through a XenRT nightly test; no problems were
      observed.
      Signed-off-by: default avatarJonathan Davies <jonathan.davies@citrix.com>
      Committed-by: default avatarIan Jackson <ian.jackson@eu.citrix.com>
      66fb4e3e
  17. 01 Nov, 2011 1 commit
  18. 18 Oct, 2011 7 commits
  19. 17 Oct, 2011 1 commit
  20. 10 Oct, 2011 1 commit