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. *** 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 <wei.wang2@amd.com> --- 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; -- 1.7.4
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,> *** 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 <wei.wang2@amd.com> > > --- > 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; >-- Anthony PERARD
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 <wei.wang2@amd.com> >> >> --- >> 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; >> > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel