[dm-devel] [PATCH 2/4] dm stats: support precise timestamps

Mikulas Patocka mpatocka at redhat.com
Wed Jun 17 13:17:40 UTC 2015



On Tue, 16 Jun 2015, Vivek Goyal wrote:

> On Tue, Jun 16, 2015 at 03:27:48PM -0400, Mikulas Patocka wrote:
> > 
> > 
> > On Tue, 16 Jun 2015, Vivek Goyal wrote:
> > 
> > > On Tue, Jun 09, 2015 at 05:21:39PM -0400, Mikulas Patocka wrote:
> > > 
> > > [..]
> > > >  Messages
> > > >  ========
> > > >  
> > > > -    @stats_create <range> <step> [<program_id> [<aux_data>]]
> > > > +    @stats_create <range> <step>
> > > > +    		[<number_of_optional_arguments> <optional_arguments>...]
> > > > +		[<program_id> [<aux_data>]]
> > > >  
> > > >  	Create a new region and return the region_id.
> > > >  
> > > > @@ -48,6 +54,17 @@ Messages
> > > >  	  "/<number_of_areas>" - the range is subdivided into the specified
> > > >  				 number of areas.
> > > >  
> > > > +	<number_of_optional_arguments>
> > > > +	  The number of optional arguments
> > > > +
> > > > +	<optional_arguments>
> > > > +	  The following optional arguments are supported
> > > > +	  precise_timestamps - use precise timer with nanosecond resolution
> > > > +	  	instead of the "jiffies" variable.  When this argument is
> > > > +		used, the resulting times are in nanoseconds instead of
> > > > +		milliseconds.  Precise timestamps are a little bit slower
> > > > +		to obtain than jiffies-based timestamps.
> > > > +
> > > 
> > > Instead of "precise_timestams" will it make sense to call it
> > > "nanosecond_timestamps" or "ns_timestamps".
> > > 
> > > 
> > > >  	<program_id>
> > > >  	  An optional parameter.  A name that uniquely identifies
> > > >  	  the userspace owner of the range.  This groups ranges together
> > > 
> > > We are adding these new parameters/arguments in between existing parameters.
> > > Will it break any of the existing scritps. Will it make sense to add these
> > > new parameters at the end. It is more intuitive.
> > 
> > It could break someone who uses number as program_id - but there is no 
> > program on Linux with name that is a pure number.
> > 
> 
> There does not seem to be any restriction that program_id has to be
> a valid program name. It could be any string. I used a program id
> of 25 and it works.

The purpose of program_id is that different programs don't step over each 
other's statistics. Your program should use the program name as program_id 
to make sure that it doesn't collide.

> [root at tiger ~]# dmsetup message docker-docker--pool 0 @stats_create - /1
> 25
> 0
> 
> [root at tiger ~]# dmsetup message docker-docker--pool 0 @stats_create - /2
> 30
> 1
> 
> [root at tiger ~]# dmsetup message docker-docker--pool 0 @stats_list 25
> 0: 0+585465856 585465856 25 -
> 
> [root at tiger ~]# dmsetup message docker-docker--pool 0 @stats_list
> 0: 0+585465856 585465856 25 -
> 1: 0+585465856 292732928 30 -
> 
> May be we can introduce a new message to handle this new number of
> arguments syntax. Say "stats_create_v2". That way existing programs
> will not be broken, if any.

There are no existing programs that use numbers as program_id.

> > We can't add it at the end because program_id and aux_data are already 
> > optional arguments.
> > 
> > > Also, I was wondering that why do we need to introduce this notion of
> > > number of optional arguments. Can't we just introduce another optional
> > > parameter [ns_timestamps]. That feels little simpler.
> > 
> > Then, it will clash with program_id "ns_timestamps". Device mapper uses 
> > this "number of optional arguments" notation at other places, so I used it 
> > too,
> 
> BTW, I have a very stupid question. This probably stems from the fact that
> I don't know enough about dm argument parsing. 
> 
> Why can't I pass the argument in same format as command line. So how
> about.
> 
> @stats_create [program_id=<program_id>] [aux_data=<aux_data>]
> 
> That way we know what arguments are coming. There is no guessing and 
> handling optional parameters is easy too.

Other dm targets don't use this style of argument passing.

Mikulas

> Thanks
> Vivek
> 




More information about the dm-devel mailing list