[ltt-dev] [PATCH v3 0/4] Separate ltt_trace_create() into ltt_trace_create() and ltt_trace_alloc()
Mathieu Desnoyers
compudj at krystal.dyndns.org
Wed Nov 12 00:06:43 EST 2008
* Zhaolei (zhaolei at cn.fujitsu.com) wrote:
> Hello, I modified patchset of "Separate ltt_trace_create() into
> ltt_trace_create() and ltt_trace_alloc()" based on your advice.
>
> >> -static struct dentry *ltt_root_dentry;
> >> +struct dentry *ltt_root_dentry;
> >> +EXPORT_SYMBOL_GPL(ltt_root_dentry);
> >> +
> >
> > Hrm, I think it will cause a double declaration of ltt_root_dentry if
> > both ltt-relay and ltt-relay-locked are loaded. ltt_root_dentry should
> > probably sit in ltt-core.c.
> ltt_root_dentry is moved into ltt-core.c.
> But I think it is ltt-core.c's duty to create ltt-root in debugfs(not ltt-relay)
> ltt-relay and ltt-relay-locked's dir should be in ltt-root, so dir should be:
> debugfs/
> `-- ltt
> |-- control
> | `-- ...
> |-- relay
> | `-- ...
> `-- relay-locked
> `-- ...
> Maybe it will also affect user-mode tools, I'd like to impl it after new
> ltt-trace-control get merged.
>
OK, as long as we don't have duplicate definitions for ltt_root_dentry,
we can proceed incrementally.
> >> + unsigned int def_subbufsize;
> >> + unsigned int def_subbufcount;
> >> +} chan_infos[] = {
> >
> > A declaration like this seems to work :
> >
> >
> > int blah[] = {
> > [0] = 1,
> > [1] = 2,
> > [5] = 3,
> > [4] = 4,
> > };
> >
> > So I think you can populate the array by using :
> >
> > struct chan_info_struct {
> > const char *name;
> > unsigned int channel_index;
> > unsigned int def_subbufsize;
> > unsigned int def_subbufcount;
> > } chan_infos[] = {
> > [GET_CHANNEL_INDEX(cpu)] = {
> > LTT_CPU_CHANNEL,
> > LTT_DEFAULT_SUBBUF_SIZE_HIGH,
> > LTT_DEFAULT_N_SUBBUFS_HIGH,
> > },
> > .........
> > };
> >
> > So you don't have to force the correct declaration order.
> Thanks, I changed source.
> But I think "[LTT_CHANNEL_CPU] = {" is better, because using
> GET_CHANNEL_INDEX() as array's index will leave a lot of blank items as:
> [0] = [BLANK]
> [1] = [BLANK]
> [2] = [BLANK]
> [3] = [BLANK]
> [4] = [BLANK]
> [5] = [BLANK]
> [6] = [BLANK]
> [7] = [BLANK]
> [8] = [BLANK]
> [9] = [BLANK]
> [10] = [BLANK]
> [11] = [BLANK]
> [12] = [BLANK]
> [13] = [BLANK]
> [14] = [BLANK]
> [15] = [BLANK]
> [16] = [CPU's item]
> [17] = [BLANK]
> [18] = [BLANK]
> [19] = [BLANK]
> [20] = [PROCESSES's item]
> [21] = [BLANK]
> [22] = [BLANK]
> [23] = [BLANK]
> ...
> And make search and iter operation complex.
>
Ah, yes, that was not my intent. Your solution is appropriate.
> Per-channel's overwrite control function is added.
> I'll post new ltt-trace-control in next mail.
>
> After we merge this patch, we need to do following work:
> 1: Change user-mode tools to support debugfs-based control interface.
> (now we support both control interface)
> 2: Remove old netlink-based code from source.
Yes, I'll go through a final review before the merge, I think we should
be able to complete this soon. :)
Thanks,
Mathieu
>
> Thanks!
>
>
> _______________________________________________
> 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
More information about the lttng-dev
mailing list