diff -r 7e4d798e8726 tools/libxc/xc_private.c --- a/tools/libxc/xc_private.c Wed Aug 18 11:29:35 2010 +0100 +++ b/tools/libxc/xc_private.c Wed Aug 18 13:07:15 2010 +0100 @@ -195,6 +195,7 @@ int lock_pages(void *addr, size_t len) void *laddr = (void *)((unsigned long)addr & PAGE_MASK); size_t llen = (len + ((unsigned long)addr - (unsigned long)laddr) + PAGE_SIZE - 1) & PAGE_MASK; + printf("%s(%p,%zd) -> mlock(%p,%zd)\n", __func__, addr, len, laddr, llen); e = mlock(laddr, llen); return e; } @@ -204,6 +205,7 @@ void unlock_pages(void *addr, size_t len void *laddr = (void *)((unsigned long)addr & PAGE_MASK); size_t llen = (len + ((unsigned long)addr - (unsigned long)laddr) + PAGE_SIZE - 1) & PAGE_MASK; + printf("%s(%p,%zd) -> safe_munlock(%p,%zd)\n", __func__, addr, len, laddr, llen); safe_munlock(laddr, llen); } @@ -217,6 +219,8 @@ static void _xc_clean_hcall_buf(void *m) static void _xc_clean_hcall_buf(void *m) { struct hcall_buf *hcall_buf = m; + + printf("%s(%p) -> %p\n", __func__, m, hcall_buf ? hcall_buf->buf : NULL); if ( hcall_buf ) { @@ -236,6 +240,8 @@ static void xc_clean_hcall_buf(void) { void *hcall_buf = pthread_getspecific(hcall_buf_pkey); + printf("%s(%p)\n", __func__, hcall_buf); + if (hcall_buf) _xc_clean_hcall_buf(hcall_buf); } @@ -249,6 +255,7 @@ int hcall_buf_prep(void **addr, size_t l { struct hcall_buf *hcall_buf; + printf("%s(%p,%zd)\n", __func__, *addr, len); pthread_once(&hcall_buf_pkey_once, _xc_init_hcall_buf); hcall_buf = pthread_getspecific(hcall_buf_pkey); @@ -257,12 +264,14 @@ int hcall_buf_prep(void **addr, size_t l hcall_buf = calloc(1, sizeof(*hcall_buf)); if ( !hcall_buf ) goto out; + printf("%s hcall buf at %p\n", __func__, hcall_buf); pthread_setspecific(hcall_buf_pkey, hcall_buf); } if ( !hcall_buf->buf ) { hcall_buf->buf = xc_memalign(PAGE_SIZE, PAGE_SIZE); + printf("%s hcall_buf->buf at %p\n", __func__, hcall_buf->buf); if ( !hcall_buf->buf || lock_pages(hcall_buf->buf, PAGE_SIZE) ) { free(hcall_buf->buf); @@ -286,6 +295,8 @@ void hcall_buf_release(void **addr, size void hcall_buf_release(void **addr, size_t len) { struct hcall_buf *hcall_buf = pthread_getspecific(hcall_buf_pkey); + + printf("%s(%p,%zd)\n", __func__, *addr, len); if ( hcall_buf && (hcall_buf->buf == *addr) ) {