* New kernel shared snapshots @ 2009-07-27 11:24 Mikulas Patocka 2009-08-19 14:31 ` Jonathan Brassow 0 siblings, 1 reply; 5+ messages in thread From: Mikulas Patocka @ 2009-07-27 11:24 UTC (permalink / raw) To: Alasdair G Kergon; +Cc: dm-devel, Milan Broz Hi The new release of shared snapshots can be found here: http://people.redhat.com/mpatocka/patches/kernel/new-snapshots/devel/ It has the interface we talked about on Linux Tag. So look at it as a last chance to review the interface. And also test it. To create a snapshot, you have to: - send a message - ask for status, get the snapshot id - suspend (this creates the snapshot, when the filesystem is quiescent) - resume Then, you can attach the snapshots by loading "multisnap-snap" target. If the table line contains argument "sync-snapshots", it synchronizes the snapshot list against what is given on the table --- i.e. creates snapshots that are on the table but are not in the store and deletes those that are not in the store but are on the table. Other changes: - make more structures private (move them to dm-multisnap-private.h), so that ABI doesn't change if these are chaged. - snapshot IDs are treated as strings, not numbers. - metadata cache size can be specified as an argument to the "mikulas" exception store. - an argument "preserve-on-error" that says that on error or overflow, writes to the origin should be disabled. - if you don't specify this, the origin continues operation, but snapshots are irreversibly damaged by this (use for non-important snapshots such as backups) - if you specify this, the data are always preserved, the whole thing just halts on error (user when snapshots contain some important data. - fixed two bad bugs in dm-bufio. Known bugs: - that read-vs-realloc race (that I already fixed in the old snapshots a year ago) is present there. I'll fix it, but it isn't so trivial as in unshared snapshots. Mikulas ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: New kernel shared snapshots 2009-07-27 11:24 New kernel shared snapshots Mikulas Patocka @ 2009-08-19 14:31 ` Jonathan Brassow 2009-08-25 14:43 ` Mikulas Patocka 0 siblings, 1 reply; 5+ messages in thread From: Jonathan Brassow @ 2009-08-19 14:31 UTC (permalink / raw) To: Mikulas Patocka; +Cc: dm-devel, Alasdair G Kergon, Milan Broz Thanks for the recent repost (18-Aug-2009) of your patches at: http://people.redhat.com/mpatocka/patches/kernel/new-snapshot/devel The interface seems to be in-line with what we want. I noticed that you can't have dm-snapshot and dm-multisnapshot loaded in the kernel at the same time (kmem_cache_create: duplicate cache dm_snap_tracked_chunk -- in the module init function). You will also want to run your patches through 'linux/scripts/checkpatch.pl'. It mostly gets angry about the 80 characters / line breakage, but there is some other things it catches. brassow On Jul 27, 2009, at 6:24 AM, Mikulas Patocka wrote: > Hi > > The new release of shared snapshots can be found here: > http://people.redhat.com/mpatocka/patches/kernel/new-snapshots/devel/ > > It has the interface we talked about on Linux Tag. > So look at it as a last chance to review the interface. And also > test it. > > > To create a snapshot, you have to: > - send a message > - ask for status, get the snapshot id > - suspend (this creates the snapshot, when the filesystem is > quiescent) > - resume > > Then, you can attach the snapshots by loading "multisnap-snap" target. > > If the table line contains argument "sync-snapshots", it > synchronizes the > snapshot list against what is given on the table --- i.e. creates > snapshots that are on the table but are not in the store and deletes > those > that are not in the store but are on the table. > > Other changes: > - make more structures private (move them to dm-multisnap- > private.h), so > that ABI doesn't change if these are chaged. > - snapshot IDs are treated as strings, not numbers. > - metadata cache size can be specified as an argument to the "mikulas" > exception store. > - an argument "preserve-on-error" that says that on error or overflow, > writes to the origin should be disabled. > - if you don't specify this, the origin continues operation, but > snapshots are irreversibly damaged by this (use for non-important > snapshots such as backups) > - if you specify this, the data are always preserved, the whole > thing just halts on error (user when snapshots contain some > important data. > - fixed two bad bugs in dm-bufio. > > > Known bugs: > - that read-vs-realloc race (that I already fixed in the old > snapshots a > year ago) is present there. I'll fix it, but it isn't so trivial as in > unshared snapshots. > > > Mikulas ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: New kernel shared snapshots 2009-08-19 14:31 ` Jonathan Brassow @ 2009-08-25 14:43 ` Mikulas Patocka 2009-08-26 2:02 ` Christoph Hellwig 0 siblings, 1 reply; 5+ messages in thread From: Mikulas Patocka @ 2009-08-25 14:43 UTC (permalink / raw) To: Jonathan Brassow; +Cc: dm-devel, Alasdair G Kergon, Milan Broz Hi Thanks for review. I fixed the "duplicate cache" thing (I use slub and it doesn't give this error; slab does) and uploaded it on the same address (http://people.redhat.com/mpatocka/patches/kernel/new-snapshot/devel/). I also fixed most of checkpatch.pl warnings, but not the one for 80-column lines. I find it very unconvenient to constantly realign text for 80 columns, so I use unlimited line size --- if I am the person who will do most development on the code, it is reasonable to code it the way that is convenient for me. How do other people deal with this "80-column" requirement? I mean, if I have function static struct some_structure *some_function(int a, int b, int c, int d, long long e, struct blablabla *p) ... and now I decide that I want to add "int x" before "int a" --- so I have to realign all arguments ... and if I delete something, than again, realign --- I find it very annoying, much more annoying than writing everything just on one line and reading words split from the right to the left. What the other developers do with it? Is there some vim editor option that aligns it automatically? (set textwidth= auto-aligns text, but to the left, it is unsuitable for C code, it also doesn't autorealign multiple lines). Or do others developers align code manually and not find it annoying? Mikulas On Wed, 19 Aug 2009, Jonathan Brassow wrote: > Thanks for the recent repost (18-Aug-2009) of your patches at: > http://people.redhat.com/mpatocka/patches/kernel/new-snapshot/devel > > The interface seems to be in-line with what we want. I noticed that you can't > have dm-snapshot and dm-multisnapshot loaded in the kernel at the same time > (kmem_cache_create: duplicate cache dm_snap_tracked_chunk -- in the module > init function). You will also want to run your patches through > 'linux/scripts/checkpatch.pl'. It mostly gets angry about the 80 characters / > line breakage, but there is some other things it catches. > > brassow > > On Jul 27, 2009, at 6:24 AM, Mikulas Patocka wrote: > > > Hi > > > > The new release of shared snapshots can be found here: > > http://people.redhat.com/mpatocka/patches/kernel/new-snapshots/devel/ > > > > It has the interface we talked about on Linux Tag. > > So look at it as a last chance to review the interface. And also test it. > > > > > > To create a snapshot, you have to: > > - send a message > > - ask for status, get the snapshot id > > - suspend (this creates the snapshot, when the filesystem is quiescent) > > - resume > > > > Then, you can attach the snapshots by loading "multisnap-snap" target. > > > > If the table line contains argument "sync-snapshots", it synchronizes the > > snapshot list against what is given on the table --- i.e. creates > > snapshots that are on the table but are not in the store and deletes those > > that are not in the store but are on the table. > > > > Other changes: > > - make more structures private (move them to dm-multisnap-private.h), so > > that ABI doesn't change if these are chaged. > > - snapshot IDs are treated as strings, not numbers. > > - metadata cache size can be specified as an argument to the "mikulas" > > exception store. > > - an argument "preserve-on-error" that says that on error or overflow, > > writes to the origin should be disabled. > > - if you don't specify this, the origin continues operation, but > > snapshots are irreversibly damaged by this (use for non-important > > snapshots such as backups) > > - if you specify this, the data are always preserved, the whole > > thing just halts on error (user when snapshots contain some > > important data. > > - fixed two bad bugs in dm-bufio. > > > > > > Known bugs: > > - that read-vs-realloc race (that I already fixed in the old snapshots a > > year ago) is present there. I'll fix it, but it isn't so trivial as in > > unshared snapshots. > > > > > > Mikulas ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: New kernel shared snapshots 2009-08-25 14:43 ` Mikulas Patocka @ 2009-08-26 2:02 ` Christoph Hellwig 2009-08-26 2:25 ` NeilBrown 0 siblings, 1 reply; 5+ messages in thread From: Christoph Hellwig @ 2009-08-26 2:02 UTC (permalink / raw) To: device-mapper development; +Cc: Alasdair G Kergon, Milan Broz On Tue, Aug 25, 2009 at 10:43:33AM -0400, Mikulas Patocka wrote: > > I mean, if I have function > static struct some_structure *some_function(int a, int b, int c, > int d, long long e, > struct blablabla *p) Don't align additional paramter lines to after the opening brace, but always two tabs from column zero, e.g. static struct some_structure *some_function(int a, int b, int c, int d, long long e, struct blablabla *p) also much easier to edit, especially if the function name and/or return type changes. And yes, except maye for printks absolutely stick to the 80 column limit, it's an absolute pain to read otherwise. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: New kernel shared snapshots 2009-08-26 2:02 ` Christoph Hellwig @ 2009-08-26 2:25 ` NeilBrown 0 siblings, 0 replies; 5+ messages in thread From: NeilBrown @ 2009-08-26 2:25 UTC (permalink / raw) To: device-mapper development; +Cc: Alasdair G Kergon, Milan Broz On Wed, August 26, 2009 12:02 pm, Christoph Hellwig wrote: > On Tue, Aug 25, 2009 at 10:43:33AM -0400, Mikulas Patocka wrote: >> >> I mean, if I have function >> static struct some_structure *some_function(int a, int b, int c, >> int d, long long e, >> struct blablabla *p) > > Don't align additional paramter lines to after the opening brace, > but always two tabs from column zero, e.g. > > static struct some_structure *some_function(int a, int b, int c, > int d, long long e, struct blablabla *p) > > also much easier to edit, especially if the function name and/or return > type changes. (bike shedding alert!) Can't say I agree with that. I think the content of a parethesised group should always be to the right of the opening parenthesis unless that paranthesis (or bracket or brace) is at the end of the line. So: static struct some_structure *some_function( int a, int b, int c, int d, long long e, struct blablabal *p) would be a better option. Though in this case I would got for: static struct some_structure * some_function(argument go here....) NeilBrown ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-08-26 2:25 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-07-27 11:24 New kernel shared snapshots Mikulas Patocka 2009-08-19 14:31 ` Jonathan Brassow 2009-08-25 14:43 ` Mikulas Patocka 2009-08-26 2:02 ` Christoph Hellwig 2009-08-26 2:25 ` NeilBrown
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.