From mboxrd@z Thu Jan 1 00:00:00 1970 From: benjamin.poirier@polymtl.ca (Benjamin Poirier) Date: Mon, 08 Feb 2010 15:07:08 -0500 Subject: [ltt-dev] net extended trace openin error with LTTV (without attachment) In-Reply-To: References: , <20100208153634.GA9978@Krystal> Message-ID: <4B706EEC.30207@polymtl.ca> paljak at mit.bme.hu wrote: > > -----Mathieu Desnoyers wrote: ----- > > To: paljak at mit.bme.hu > From: Mathieu Desnoyers > Date: 2010/02/08 16:36 > cc: benjamin.poirier at polymtl.ca, ltt-dev at lists.casi.polymtl.ca > Subject: Re: [ltt-dev] net extended trace openin error with LTTV > (without attachment) > > * paljak at mit.bme.hu (paljak at mit.bme.hu) wrote: > > Hi Ben, > > > > I have been working with LTTng lately and the more I know it, the > more I > > like it! > > > > I've also been able to open and examine traces, and it looks very > > interesting. > > > > I've also tried to create my own, but I've ran into an error, > could you > > take a look? > > > > Basically, I receive an error > > (ERROR:tracefile.c:1582:ltt_update_event_size: assertion failed: > (info != > > NULL)) every time i try to open a net_extended trace with LTTV. > > > > Here's what i've done: > > > > 1. Downloaded the patched kernel: git clone > > > git://git.kernel.org/pub/scm/linux/kernel/git/compudj/linux-2.6-lttng.git > > 2. Compiled the kernel with these options (.config): > > # > > # GCOV-based kernel profiling > > # > > # CONFIG_GCOV_KERNEL is not set > > CONFIG_SLOW_WORK=y > > # CONFIG_SLOW_WORK_DEBUG is not set > > CONFIG_LTT=y > > CONFIG_LTT_FILTER=m > > CONFIG_HAVE_LTT_DUMP_TABLES=y > > CONFIG_LTT_RELAY=y > > CONFIG_LTT_RELAY_LOCKLESS=y > > # CONFIG_LTT_RELAY_IRQOFF is not set > > # CONFIG_LTT_RELAY_LOCKED is not set > > CONFIG_LTT_SERIALIZE=y > > CONFIG_LTT_FAST_SERIALIZE=y > > CONFIG_LTT_TRACEPROBES=m > > CONFIG_LTT_TRACE_CONTROL=y > > CONFIG_LTT_TRACER=y > > CONFIG_LTT_ALIGNMENT=y > > CONFIG_LTT_CHECK_ARCH_EFFICIENT_UNALIGNED_ACCESS=y > > # CONFIG_LTT_DEBUG_EVENT_SIZE is not set > > CONFIG_LTT_USERSPACE_EVENT=m > > CONFIG_LTT_VMCORE=y > > CONFIG_LTT_STATEDUMP=m > > CONFIG_LTT_KPROBES=m > > # CONFIG_LTT_ASCII is not set > > 3. Install the kernel and boot it up > > 4. Load all the modules > > modprobe -v ltt-trace-control > > modprobe -v ltt-marker-control > > modprobe -v ltt-tracer > > modprobe -v ltt-serialize > > modprobe -v ltt-relay > > modprobe -v ipc-trace > > modprobe -v kernel-trace > > modprobe -v mm-trace > > modprobe -v net-trace > > modprobe -v fs-trace > > modprobe -v jbd2-trace > > modprobe -v ext4-trace > > modprobe -v syscall-trace > > modprobe -v trap-trace > > modprobe -v ltt-statedump > > #extended trace > > modprobe -v net-extended-trace > > 5. ltt-armall -n > > 6. lttctl -C -w /tmp/tr1 tr1 > > 7. wget http://google.com > > 8. lttctl -D tr1 > > 9. lttv -m textDump -t tr1 > > ** > > ERROR:tracefile.c:1582:ltt_update_event_size: assertion failed: > (info != > > NULL) > > /usr/local/bin/lttv: line 15: 2083 Aborted $0.real $* > > 10. lttv -m textDump -t tr1 --verbose --debug --edebug > > net.udpv4_rcv_extended: 1003.743082325 (/tmp/tr1/net_0), 1878, 1878, > > gnome-terminal, , 1, 0x0, SOFTIRQ { skb = 0xC4BBC240, saddr = > 3576624693, > > daddr = 3232235780, unicast = 1, ulen = 110, source = 53, dest = > 39087, > > data_start = a299884901000100 } > > Event header (tracefile /tmp/tr1/net_0 offset bb8): > > bb8 40 C2 BB C4 > > ** > > ERROR:tracefile.c:1582:ltt_update_event_size: assertion failed: > (info != > > NULL) > > /usr/local/bin/lttv: line 15: 2104 Aborted $0.real $* > > > > The installed versions are: > > Linux Trace Toolkit Visualizer 0.12.29-02022010 > > Linux Trace Toolkit Trace Control 0.79-01022010 > > > > Here's the created trace for reference: > > http://www.mit.bme.hu/~paljak/trace.tgz > > > > > If I don't use net extended, than it works just fine. And I've > also had > > success open your example trace. > > > > Do you have any idea why do I get this error and how could I > correct it? > > That looks like a field type error in the net extended event. Can you > tell us what LTTng version you use ? (git branch should tell you) > > Is your traced machine 32 or 64 bits ? And what about the machine > running lttv ? > > Reviewing ltt/probes/net-extended-trace.c might help. > > Thanks, > > Mathieu > > I use lttng-0.188. And I run lttng and lttv on the same, 32 bit machine. > > I'm checking net-extended-trace.c but reason I could think of to cause > this error... > I can't reproduce the problem, but looking at the traces, I notice the alignment is different: your trace: metadata.core_marker_id: 994.751622140 (/tmp/trace/tr1/metadata_0), 0, 0, , , 0, 0x0, MODE_UNKNOWN { channel = "net", name = "udpv4_rcv_extended", event_id = 2, int = 4, long = 4, pointer = 4, size_t = 4, alignment = 4 } my trace: metadata.core_marker_id: 193.282545152 (/tmp/tr1/metadata_0), 0, 0, , , 0, 0x0, MODE_UNKNOWN { channel = "net", name = "udpv4_rcv_extended", event_id = 2, int = 4, long = 4, pointer = 4, size_t = 4, alignment = 0 } Could you apply the following patch over the git kernel, build and test? Thanks. diff --git a/ltt/probes/net-extended-trace.c b/ltt/probes/net-extended-trace.c index 074bfec..88410f8 100644 --- a/ltt/probes/net-extended-trace.c +++ b/ltt/probes/net-extended-trace.c @@ -130,14 +130,14 @@ notrace void probe_udpv4_rcv_extended(struct sk_buff *skb) * bytes of UDP data if they are not in a fragment*/ data.f8 = 0; if (skb_headlen(skb) >= sizeof(struct udphdr) + 8) - data.f8 = *(unsigned long long *)(skb->data + sizeof(*uh)); + data.f8 = *(uint64_t *)(skb->data + sizeof(*uh)); else if (skb_headlen(skb) >= sizeof(struct udphdr)) memcpy(&data.f8, skb->data + sizeof(struct udphdr), skb_headlen(skb) - sizeof(struct udphdr)); marker = &GET_MARKER(net, udpv4_rcv_extended); ltt_specialized_trace(marker, marker->single.probe_private, - &data, serialize_sizeof(data), sizeof(unsigned long long)); + &data, serialize_sizeof(data), sizeof(uint64_t)); } MODULE_LICENSE("GPL and additional rights"); > Thanks, > Gergely > > > ------------------------------------------------------------------------ > > _______________________________________________ > ltt-dev mailing list > ltt-dev at lists.casi.polymtl.ca > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev