On 07/10/2012 03:05 PM, Anthony PERARD wrote: > On 10/07/12 12:43, Wei Wang wrote: >> Hi, I find a passthrough issue in qemu when pci device has multiple mmio >> regions. In this case, the last few bytes of qmp response string are >> trimmed >> and then passthru fails with following output. > > Could you compile libxl with DEBUG_RECEIVED (uncomment the #define in > tools/libxl/libxl_qmp.c) and then give the output of `xl -vvv create ...`. > > Thanks, Hi, Log file has been attached. Please check them. Thanks, Wei >> *** glibc detected *** xl: realloc(): invalid pointer: >> 0x0000000002163f90 *** >> ======= Backtrace: ========= >> /lib64/libc.so.6(+0x74c06)[0x7f62970e4c06] >> /lib64/libc.so.6(+0x77d25)[0x7f62970e7d25] >> /lib/libxenlight.so.2.0(+0x28d02)[0x7f6297a78d02] >> /lib/libxenlight.so.2.0(+0x2eccf)[0x7f6297a7eccf] >> /lib/libxenlight.so.2.0(+0x2f2f6)[0x7f6297a7f2f6] >> /lib/libxenlight.so.2.0(+0x2fe18)[0x7f6297a7fe18] >> /lib/libxenlight.so.2.0(+0x20027)[0x7f6297a70027] >> /lib/libxenlight.so.2.0(+0x212a6)[0x7f6297a712a6] >> /lib/libxenlight.so.2.0(+0x19e82)[0x7f6297a69e82] >> /lib/libxenlight.so.2.0(+0x1c288)[0x7f6297a6c288] >> /lib/libxenlight.so.2.0(+0x1c2a8)[0x7f6297a6c2a8] >> /lib/libxenlight.so.2.0(+0x2657e)[0x7f6297a7657e] >> /lib/libxenlight.so.2.0(+0x34076)[0x7f6297a84076] >> /lib/libxenlight.so.2.0(libxl__fork_selfpipe_woken+0x92)[0x7f6297a84394] >> /lib/libxenlight.so.2.0(+0x3254a)[0x7f6297a8254a] >> /lib/libxenlight.so.2.0(+0x3276d)[0x7f6297a8276d] >> /lib/libxenlight.so.2.0(+0x33944)[0x7f6297a83944] >> /lib/libxenlight.so.2.0(+0x1c0a8)[0x7f6297a6c0a8] >> /lib/libxenlight.so.2.0(libxl_domain_create_new+0x14)[0x7f6297a6c14f] >> xl[0x40c1f2] >> xl[0x40fc94] >> xl[0x406c21] >> /lib64/libc.so.6(__libc_start_main+0xed)[0x7f629709123d] >> xl[0x406439] >> >> Attached patch can fix this issue. >> >> Thanks, >> Wei >> >> Signed-off-by: Wei Wang >> >> --- >> monitor.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/monitor.c b/monitor.c >> index f6107ba..9f30f5f 100644 >> --- a/monitor.c >> +++ b/monitor.c >> @@ -165,7 +165,7 @@ struct Monitor { >> int reset_seen; >> int flags; >> int suspend_cnt; >> - uint8_t outbuf[1024]; >> + uint8_t outbuf[2048]; >> int outbuf_index; >> ReadLineState *rs; >> MonitorControl *mc; >> > >