Re: [PATCH] ceph: fix memory leak in async readpages

2011-10-24 Thread Jeff Wu
Hi , take the following steps: $mount -t ceph monip:6789:/ /mnt/ceph $dd if=/dev/zero of=/mnt/ceph/2G bs=1M count=2048 conv=fsync copy_test: #!/bin/bash cp /mnt/ceph/2G /mnt/$1/ -- $copy_test 01 & $copy_test 02 & $copy_test 03 & $copy_test 04 & $copy_test 05 & $c

Re: [PATCH] ceph: fix memory leak in async readpages

2011-10-24 Thread Sage Weil
Thanks, Jeff! Was there a workload that reliably triggered this case? sage On Mon, 24 Oct 2011, Jeff Wu wrote: > Hi , > > start_read() do twice "kfree(pages)", > > > out_pages: > ceph_release_page_vector(pages, nr_pages); > kfree(pages); > > > ceph_release

Re: [PATCH] ceph: fix memory leak in async readpages

2011-10-24 Thread Jeff Wu
Hi , start_read() do twice "kfree(pages)", out_pages: ceph_release_page_vector(pages, nr_pages); kfree(pages); ceph_release_page_vector had kfree pages, continue to do kfree(pages), sometimes ,async read ,printk "BUG kmalloc-16: Object already free" ,then OOPS.

Re: [PATCH] ceph: fix memory leak in async readpages

2011-09-28 Thread Sage Weil
On Wed, 28 Sep 2011, Sage Weil wrote: > I'll send this upstream with the other patches so it'll hopefully make > 3.1... Er, not really.. this'll go upstream during the next merge window, along with the readahead code. :) sage > > Thanks! > sage > > > On Wed, 28 Sep 2011, David Flynn wrote

Re: [PATCH] ceph: fix memory leak in async readpages

2011-09-28 Thread Sage Weil
Can I add your Signed-off-by: on that? I'll send this upstream with the other patches so it'll hopefully make 3.1... Thanks! sage On Wed, 28 Sep 2011, David Flynn wrote: > The finish_read callback introduced in 63c90314546c1cec1f220f6ab24ea > fails to release the page list allocated in star

[PATCH] ceph: fix memory leak in async readpages

2011-09-28 Thread David Flynn
The finish_read callback introduced in 63c90314546c1cec1f220f6ab24ea fails to release the page list allocated in start_read. --- fs/ceph/addr.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index e06a322..4144caf 100644 --- a/fs/ceph/addr.