From mboxrd@z Thu Jan 1 00:00:00 1970 From: compudj@krystal.dyndns.org (Mathieu Desnoyers) Date: Mon, 1 Dec 2008 08:38:30 -0500 Subject: [ltt-dev] Make lttctl use new interface In-Reply-To: <33286A363EC1466898F4D0ABE9E17335@zhaoleiwin> References: <492F9F48.1080302@cn.fujitsu.com> <20081128123850.GA8162@Krystal> <493358AF.80403@cn.fujitsu.com> <20081201111540.GF25340@Krystal> <33286A363EC1466898F4D0ABE9E17335@zhaoleiwin> Message-ID: <20081201133829.GA2267@Krystal> * Zhaolei (zhaolei at cn.fujitsu.com) wrote: > * From: "Mathieu Desnoyers" > >* Zhaolei (zhaolei at cn.fujitsu.com) wrote: > >> Mathieu Desnoyers ??: > >> > * Zhaolei (zhaolei at cn.fujitsu.com) wrote: > >> >> Hi, Mathieu > >> >> > >> >> I modified lttctl for support debugfs-based ltt-trace-control. > >> >> > >> >> This patch only modified interior method of control ltt trace, > >> >> so command args are not changed. > >> >> > >> >> We can use this code without modify our user-manual, and lttv need not change > >> >> too. > >> >> > >> >> But personaly, I'd like to design a set of new command arguments for lttctl in > >> >> next step, for support each-channel buffer and overwrite control. > >> >> And old cmd-args as -X, -V, -B, -z, -x, -v may be dropped(or change for easy > >> >> to remember) > >> >> For example: > >> >> -c Create a trace > >> >> -C Create a trace and start > >> >> -d Destroy trace channels > >> >> -D Stop and destroy trace channels > >> >> ... > >> >> or > >> >> -c Create a trace > >> >> -cs Create a trace and start > >> >> -d Destroy trace channels > >> >> -td Terminate and destroy trace channels > >> >> ... > >> >> But it we do, our unlucky users must read our new manual again : ( > >> >> What is your opinion? > >> >> > >> > > >> > Your patch looks great :) But I'd go directly for a command-line > >> > breakage so we don't end up keeping legacy options. The sooner the > >> > better. > >> > > >> > I really like the -c, -C, -d, -D approach. Maybe we could have both of > >> > your suggestions supported as aliases ? > >> Hello, Mathieu > > > > Hi Zhaolei, > > > >> > >> I consider about following options: > >> > >> Basic options: > >> -c, --create tracename > >> Create a trace > >> -d, --destroy tracename > >> Destroy trace channels > >> -s, --start tracename > >> Start tracing > > > > --> terminate -> pause ? > > > > -p, --pause tracename > > Pause tracing > > > > Maybe we should add > > -r --read (comma separated channel list, e.g. -r "cpu,processes") > > Channels to read from > > -w, --write (disk, network, ...) > > Write trace data read from --read channel list through disk or > > network module. > > > >> -h, --help > >> Show help > >> > >> Advanced options: > >> --type > >> Type of trace (ex. relay) > >> --ltt_root > >> LTT channels root path. (ex. /mnt/debugfs/ltt) > > > > sounds good. > > > >> -o, --option > >> Set options, following operations are supported: > >> cpu.bufnum= > >> cpu.bufsize= > >> cpu.overwrite= > >> processes.bufnum= > >> processes.bufsize= > >> processes.overwrite= > >> interrupts.bufnum= > >> interrupts.bufsize= > >> interrupts.overwrite= > >> network.bufnum= > >> network.bufsize= > >> network.overwrite= > >> modules.bufnum= > >> modules.bufsize= > >> modules.overwrite= > >> metadata.bufnum= > >> metadata.bufsize= > >> > > > > Can we more generically say > > > > .bufnum= > > .bufsize= > > .overwrite= > > > > ? Because in a near future we won't be limited to the "fixed" channel > > names, other tracers will be allowed to register their own channel. > > > >> Integration options: > >> -C, --create_start tracename > >> Create a trace and start > >> -D, --stop_destroy tracename > > > > stop -> Pause. > >> Stop and destroy trace channels > > > > Stop -> Pause. (that's equivalent) > > > >> -A, --all_create tracename > >> All mode: Create trace, spawn a lttd daemon, start tracing. > >> (optionally, you can set LTT_DAEMON env. var.) > > > > Yeah, that's not an easy one. I guess "super mega combo pack" would not > > be much more descriptive neither. :) > > > > So that would be the -cs -w disk ? (or -C -w disk). Maybe we could leave > > that like this (two separate options), I think the -A would be too > > confusing. > > > > > >> -H, --hybrid_finish > >> Stop tracing, dump flight recorder trace, destroy channels > > > > That would become : > > > > -D -r "list of channels" -w disk > > > > Maybe we could also add a special -r keyword to specify "all overwrite" > > or "all non-overwrite" channels. Notice that the standard "hybrid" mode > > would be a : > > > > lttctl -C -r "non-overwrite-wildcard" -w disk > > ... > > lttctl -D -r "overwrite-wildcard" -w disk > > > Hello, Mathieu > > Thanks for your suggestion. > > I think -r must specify non-overwrite channels with -C, and must specify > overwrite channels with -D. > > Instead of select some channel to dump, why not just trace some of channel, > then we can dump all non-overwrite channels with -C and dump all overwrite > channels with -D. > > For example: > Trace network and process channel with non-overwrite mode, and trace cpu channel > with overwrite mode, other channel are not traced when we start a new trace. > Then we can dump all non-overwrite channels(network and process channel) > in tracing, and dump all overwrite channels(cpu channel) when we finished trace. > > It can reduce system load when we only want to trace some channels. > > B.R. > Zhaolei > Yep, it looks good and easy to understand. Mathieu > > > >> -p, --path path > >> Path for write trace datas. (ex. /root/traces/example_trace) > >> For -A and -H options > > > > Nope, that would now go with -w option. > > > >> -a, --append > >> Append to trace > >> For -A and -H options > > > > This also would go with -w. > > > >> -n, --dump_threads number > >> Number of lttd threads > >> For -A and -H options > > > > Same here. > > > > Mathieu > > > >> > >> For example, create and start a trace, set cpu channel's subbuf number to 4, > >> set network channel overwrite, and spawn a lttd daemon is: > >> lttctl -A trace1 -p /tmp/trace1 -o cpu.bufsize=4 -o network.overwrite=1 > >> > >> Option of -A(--all_create) looks some strange(not very exact), I'd like to > >> find a word means "Do all things for start a trace", do you have some suggestion? > >> > >> And option of -H(--hybrid_finish) is not exact too, because I think we should > >> make it include meaning of both "finish a trace" and "hybrid", but -H only have > >> meaning of "hybrid". > >> > >> What is your opinion about options above? > >> (Because my English is pool, modify of option's comment is also welcome) > >> > >> > > >> > If we change this, we should also update the lttv QUICKSTART file > >> > accordingly. > >> Yes, lttv also needs little update. > >> > >> B.R. > >> Zhaolei > >> > > >> > Mathieu > >> > > >> > > >> > > > > -- > > Mathieu Desnoyers > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 > > > > > _______________________________________________ > ltt-dev mailing list > ltt-dev at lists.casi.polymtl.ca > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev > -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68