On Fri May 20, 2011 at 14:16:05 +0100, Stefan Hajnoczi wrote:

> >  I've had a quick read of hw/virtio-blk.c but didn't see anything
> >  glaringly obvious.  I'll need to trace through the code, drink more
> >  coffee, or get lucky to narrow it down further.
>
> Enabling the memory allocation trace events and adding the
> __builtin_return_address() to them should provide enough information
> to catch the caller who is leaking memory.

  I'm trying to do that at the moment.  So far the only thing I've
 done is add a trace on virtio_blk_alloc_request - I'm noticing
 a leak there pretty easily.

  I see *two* request structures be allocated all the time, one
 is used and freed, the other is ignored.  That seems pretty
 conclusively wrong to me, but I'm trying to understand how that
 happens:

 virtio_blk_alloc_request 0.000 req=0x91e08f0  -> Allocation 1
 virtio_blk_alloc_request 77.659 req=0x9215650  -> Allocation 2
 virtio_blk_rw_complete 449.469 req=0x91e08f0 ret=0x0 -> First is used.
 virtio_blk_req_complete 1.955 req=0x91e08f0 status=0x0 -> First is freed.

 second is never seen again.

Steve Kemp
--
                                          Bytemark Hosting
                                http://www.bytemark.co.uk/
                                  phone UK: 0845 004 3 004
          Dedicated Linux hosts from 15ukp ($30) per month
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to