[dm-devel] Calltrace in dm-snapshot in 2.6.27 kernel

Mikulas Patocka mpatocka at redhat.com
Tue Oct 21 21:43:55 UTC 2008


Hi

Run the same workload and try this patch (also keep the previous patch 
applied).

Note, that the patch is not correct (it leaks a little bit of memory when 
you deactivate a snapshot, also it will cause an error if you rmmod 
dm-snapshot), I just want to see if you get any more crashes with this.

Mikulas

> My workload in case of 32b involved only one volume and 3 snapshots to
> this volume. I wrote only to origin volume (with use fstress) and I
> created and deleted these snapshots from time to time. Snapshots was
> mount with rw option.
> 
> In case 64b I had 2 volume and 10 snapshots for each volume.I created
> and deleted these snapshots from time to time as well. I wrote only to
> origin volumes (with use dd)
> 
> I don`t remember exactly but in case test with 1 snapshot per volume all
> was working correctly through a few hours and I stopped this test but in
> case my above tests system was working correctly through a few minutes.
>  
> Mikulas Patocka wrote:
> >> Hi Mikulas
> >>
> >> I send to You (in attachment) files from both kernels.Thank You for help
> >>
> >> Best
> >>     
> >
> > Thanks. Does your workload involve just one snapshot of a given volume, or 
> > do you have more snapshots of the same volume? Do you write only to origin 
> > or to both origin and the snapshot or only to the snapshot?
> >
> > I will send you some patch with more debug tests soon, just answer these 
> > questions first, so that I can make it.
> >
> > Mikulas

---
 drivers/md/dm-snap.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6.27-clean/drivers/md/dm-snap.c
===================================================================
--- linux-2.6.27-clean.orig/drivers/md/dm-snap.c	2008-10-21 23:38:49.000000000 +0200
+++ linux-2.6.27-clean/drivers/md/dm-snap.c	2008-10-21 23:39:09.000000000 +0200
@@ -736,12 +736,12 @@ static void snapshot_dtr(struct dm_targe
 
 	__free_exceptions(s);
 
-	mempool_destroy(s->pending_pool);
+	/*mempool_destroy(s->pending_pool);*/
 
 	dm_put_device(ti, s->origin);
 	dm_put_device(ti, s->cow);
 
-	kfree(s);
+	/*kfree(s);*/
 }
 
 /*




More information about the dm-devel mailing list