* systemtap networking tapsets was: Re: [RFC]: field name identifier
@ 2007-10-22 16:31 Arnaldo Carvalho de Melo
2007-10-24 12:11 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2007-10-22 16:31 UTC (permalink / raw)
To: dccp
CCing dccp@vger.kernel.org, since I wrote a nice description about
this new toy :)
Em Mon, Oct 22, 2007 at 03:24:41PM +0100, Gerrit Renker escreveu:
> | perhaps one that could understand types and then could allow developers
> | to ask questions like "show me all the places where the field foo of
> | type bar appears"
> Hopefully in the next generation of such things may be possible? I was
> once stunned by a screenshot of some form of (k)gdb which took a large nested
> struct apart into the nested components.
This is my baby I guess :) pahole can do just that:
http://oops.ghostprotocols.net:81/acme/dwarves/pahole--expand_types-struct-tcp6_sock.txt
> So far very happy with "make cscope" and the excellent support that vim offers,
> also tried Red Hat's sourcenav once (but took ages).o
I use ctags, but I agree that cscope has more features.
Ah, I'm working on some systemtap tapsets, i.e. libraries of probe
routines, for networking, starting with TCP, but organized in a way
that can be easily used with DCCP and other net protocols too.
You need to build the kernel with CONFIG_DEBUG_INFO so that systemtap
gets the required symbols (tcp_v4_rcv, etc, look in the tapsets).
Take a look, I had to manually sort the output, will fix that, and
there are some bugs yet as you can see with some negative nanosecond
deltas, but its getting useful.
Ah, the times are in nanoseconds from userspace all the way to the
network device driver ("dev_out" lines), and from netif_rx or
netif_receive_skb (i.e. right when the network device driver creates the
packet and hands it up the network stack) to ip_rcv ("ip_in"),
tcp_v4_rcv ("tcp_in") and to userspace via skb_copy_datagram_iovec
("user_in"). I'm using skb->tstamp to mark when the journey begins,
so don't use it at the same time with tcpdump.
I intend to record more entries, so that we can understand where the
skbs are sitting.
And will probably convert net/dccp/dccpprobe.c and tcpprobe to be
just systemtap scripts and not part of the build process, etc.
http://oops.ghostprotocols.net:81/acme/nettaps.tar.bz2
[root@doppio nettaps]# stap -I tapset/ lnlat.stp
latency(ns) buffer size
entry local address port remote address port avg min max avg min max
-
user_in 192.168.1.9 48366 216.239.51.125 5222 737982 724188 751776 195 5 386
tcp_in 192.168.1.9 48366 216.239.51.125 5222 40176 40176 40176 411 411 411
ip_in 192.168.1.9 48366 216.239.51.125 5222 13968 13968 13968 431 431 431
dev_out 192.168.1.9 48366 216.239.51.125 5222 37884 21588 54180 63 54 72
-
user_in 192.168.1.9 43391 192.168.1.6 22 283830 216216 346140 56 48 64
tcp_in 192.168.1.9 43391 192.168.1.6 22 34221 24492 65232 88 80 96
ip_in 192.168.1.9 43391 192.168.1.6 22 11620 9744 14052 108 100 116
dev_out 192.168.1.9 43391 192.168.1.6 22 -2943 -870508 229992 93 66 148
-
user_in 192.168.1.9 49886 207.46.108.27 1863 247464 247464 247464 8 8 8
tcp_in 192.168.1.9 49886 207.46.108.27 1863 18150 18150 18150 40 40 40
ip_in 192.168.1.9 49886 207.46.108.27 1863 5718 5718 5718 60 60 60
dev_out 192.168.1.9 49886 207.46.108.27 1863 54475 9714 146004 77 66 89
-
user_in 10.11.15.126 40517 10.10.36.72 6667 60596 30912 90280 65 52 79
tcp_in 10.11.15.126 40517 10.10.36.72 6667 9258 9258 9258 111 111 111
ip_in 10.11.15.126 40517 10.10.36.72 6667 2736 2736 2736 131 131 131
dev_out 10.11.15.126 40517 10.10.36.72 6667 10026 10026 10026 52 52 52
-
user_in 192.168.1.9 57815 192.168.1.2 22 401277 209832 778728 57 48 64
tcp_in 192.168.1.9 57815 192.168.1.2 22 37165 24720 72444 89 80 96
ip_in 192.168.1.9 57815 192.168.1.2 22 11777 9720 14868 109 100 116
dev_out 192.168.1.9 57815 192.168.1.2 22 60789 14052 216828 93 66 148
-
user_in 192.168.1.9 44572 192.168.1.8 22 128581 -509484 451092 56 48 64
tcp_in 192.168.1.9 44572 192.168.1.8 22 31453 23088 58008 88 80 96
ip_in 192.168.1.9 44572 192.168.1.8 22 10946 9300 14256 108 100 116
dev_out 192.168.1.9 44572 192.168.1.8 22 54194 16404 215784 88 66 148
-
- Arnaldo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: systemtap networking tapsets was: Re: [RFC]: field name identifier conventions
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
@ 2007-10-24 12:11 ` Gerrit Renker
2007-10-24 13:32 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Gerrit Renker @ 2007-10-24 12:11 UTC (permalink / raw)
To: dccp
| > | perhaps one that could understand types and then could allow developers
| > | to ask questions like "show me all the places where the field foo of
| > | type bar appears"
| > Hopefully in the next generation of such things may be possible? I was
^
|
Indeed! Did you notice the missing word + ... I meant to write `dwarves' :)
and wrote `next generation' since there are apparently already 7 in this generation.
| Ah, I'm working on some systemtap tapsets, i.e. libraries of probe
| routines, for networking, starting with TCP, but organized in a way
| that can be easily used with DCCP and other net protocols too.
If you could give a shout on the mailing list once it is ready for testing/deployment,
that would be good. Last year you had a nice tool which automatically inserted kprobes
at entry/exit points, it was apparently meant to replace an older tool. I tried it a
few times but then lost track of the revisions. It is frustrating to test stuff which is
in the middle of a migration to something else.
The output looks great and once that is ready, I think it can be of much help to answer
long pending questions of e.g. how well the packet scheduler really works.
| And will probably convert net/dccp/dccpprobe.c and tcpprobe to be
| just systemtap scripts and not part of the build process, etc.
I think that dccpprobe.c is the wrong name ... it should really be called ccid3_probe.c ...
I have been working on printing entries for CCID2, since in ccid2.c there is no probe support,
and instead ccid2_pr_debug is used for the same purpose all over the place.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: systemtap networking tapsets was: Re: [RFC]: field name
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
2007-10-24 12:11 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
@ 2007-10-24 13:32 ` Arnaldo Carvalho de Melo
2007-10-24 13:35 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2007-10-24 13:32 UTC (permalink / raw)
To: dccp
Em Wed, Oct 24, 2007 at 01:11:18PM +0100, Gerrit Renker escreveu:
> | > | perhaps one that could understand types and then could allow developers
> | > | to ask questions like "show me all the places where the field foo of
> | > | type bar appears"
> | > Hopefully in the next generation of such things may be possible? I was
> ^
> |
> Indeed! Did you notice the missing word + ... I meant to write `dwarves' :)
> and wrote `next generation' since there are apparently already 7 in this generation.
:)
> | Ah, I'm working on some systemtap tapsets, i.e. libraries of probe
> | routines, for networking, starting with TCP, but organized in a way
> | that can be easily used with DCCP and other net protocols too.
> If you could give a shout on the mailing list once it is ready for testing/deployment,
> that would be good. Last year you had a nice tool which automatically inserted kprobes
> at entry/exit points, it was apparently meant to replace an older tool. I tried it a
> few times but then lost track of the revisions. It is frustrating to test stuff which is
> in the middle of a migration to something else.
I will, what you are talking about is ctracer, that generates kprobes
entry/exit, I'll go to a third revision that will be to generate
systemtap scripts instead of kprobes, leveraging on the systemtap safety
nets.
Yesterday I stopped using _stp_gettimeofday_ns() for the timestamp,
switched to get_cycles_sync() and there was no performance drop when
using lnlat.stp (the local network latency measurement tool), so it
indeed looks promising.
> The output looks great and once that is ready, I think it can be of much help to answer
> long pending questions of e.g. how well the packet scheduler really works.
Exactly, I want to have a clear picture of where packets sits, and the
packet scheduler will be one of the next tapsets I'll be working on.
> | And will probably convert net/dccp/dccpprobe.c and tcpprobe to be
> | just systemtap scripts and not part of the build process, etc.
> I think that dccpprobe.c is the wrong name ... it should really be called ccid3_probe.c ...
> I have been working on printing entries for CCID2, since in ccid2.c there is no probe support,
> and instead ccid2_pr_debug is used for the same purpose all over the place.
Indeed, lemme try converting it right now...
- Arnaldo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: systemtap networking tapsets was: Re: [RFC]: field name identifier conventions
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
2007-10-24 12:11 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
2007-10-24 13:32 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
@ 2007-10-24 13:35 ` Gerrit Renker
2007-10-24 15:43 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Gerrit Renker @ 2007-10-24 13:35 UTC (permalink / raw)
To: dccp
Quoting Arnaldo Carvalho de Melo:
| > I think that dccpprobe.c is the wrong name ... it should really be called ccid3_probe.c ...
| > I have been working on printing entries for CCID2, since in ccid2.c there is no probe support,
| > and instead ccid2_pr_debug is used for the same purpose all over the place.
|
| Indeed, lemme try converting it right now...
|
This is how far I came (only for info, applies only on test tree):
--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -34,6 +34,7 @@
XXX enough for this week, remove to re-enable
#include "dccp.h"
#include "ccid.h"
+#include "ccids/ccid2.h"
#include "ccids/ccid3.h"
static int port;
@@ -80,22 +81,37 @@ static int jdccp_sendmsg(struct kiocb *i
struct msghdr *msg, size_t size)
{
const struct inet_sock *inet = inet_sk(sk);
- struct ccid3_hc_tx_sock *hctx = NULL;
+ struct ccid2_hc_tx_sock *tx2 = NULL;
+ struct ccid3_hc_tx_sock *tx3 = NULL;
- if (ccid_get_current_id(dccp_sk(sk), false) = DCCPC_CCID3)
- hctx = ccid3_hc_tx_sk(sk);
+ switch (ccid_get_current_id(dccp_sk(sk), false)) {
+ case DCCPC_CCID2:
+ tx2 = ccid2_hc_tx_sk(sk);
+ break;
+ case DCCPC_CCID3:
+ tx3 = ccid3_hc_tx_sk(sk);
+ }
if (port = 0 || ntohs(inet->dport) = port ||
ntohs(inet->sport) = port) {
- if (hctx)
+ if (tx3)
printl("%d.%d.%d.%d:%u %d.%d.%d.%d:%u %d %d %d %d %u "
"%llu %llu %d\n",
NIPQUAD(inet->saddr), ntohs(inet->sport),
NIPQUAD(inet->daddr), ntohs(inet->dport), size,
- hctx->ccid3hctx_s, hctx->ccid3hctx_rtt,
- hctx->ccid3hctx_p, hctx->ccid3hctx_x_calc,
- hctx->ccid3hctx_x_recv >> 6,
- hctx->ccid3hctx_x >> 6, hctx->ccid3hctx_t_ipi);
+ tx3->ccid3hctx_s, tx3->ccid3hctx_rtt,
+ tx3->ccid3hctx_p, tx3->ccid3hctx_x_calc,
+ tx3->ccid3hctx_x_recv >> 6,
+ tx3->ccid3hctx_x >> 6, tx3->ccid3hctx_t_ipi);
+ else if (tx2)
+ printl("%d.%d.%d.%d:%u %d.%d.%d.%d:%u %d %d %d %u %u %u\n",
+ NIPQUAD(inet->saddr), ntohs(inet->sport),
+ NIPQUAD(inet->daddr), ntohs(inet->dport), size,
+ tx2->ccid2hctx_srtt>>3,
+ tx2->ccid2hctx_rttvar>>2,
+ tx2->ccid2hctx_pipe,
+ tx2->ccid2hctx_cwnd,
+ tx2->ccid2hctx_ssthresh);
else
printl("%d.%d.%d.%d:%u %d.%d.%d.%d:%u %d\n",
NIPQUAD(inet->saddr), ntohs(inet->sport),
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -129,9 +129,6 @@ static int ccid2_hc_tx_send_packet(struc
{
struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk);
- ccid2_pr_debug("pipe=%d cwnd=%d\n", hctx->ccid2hctx_pipe,
- hctx->ccid2hctx_cwnd);
-
if (hctx->ccid2hctx_pipe < hctx->ccid2hctx_cwnd)
return 0;
@@ -259,9 +256,6 @@ static void ccid2_hc_tx_packet_sent(stru
}
hctx->ccid2hctx_seqh = next;
- ccid2_pr_debug("cwnd=%d pipe=%d\n", hctx->ccid2hctx_cwnd,
- hctx->ccid2hctx_pipe);
-
/*
* FIXME: The code below is broken and the variables have been removed
* from the socket struct. The `ackloss' variable was always set to 0,
@@ -316,7 +310,6 @@ static void ccid2_hc_tx_packet_sent(stru
ccid2_start_rto_timer(sk);
#ifdef CONFIG_IP_DCCP_CCID2_DEBUG
- ccid2_pr_debug("pipe=%d\n", hctx->ccid2hctx_pipe);
ccid2_pr_debug("Sent: seq=%llu\n", (unsigned long long)dp->dccps_gss);
do {
struct ccid2_seq *seqp = hctx->ccid2hctx_seqt;
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: systemtap networking tapsets was: Re: [RFC]: field name
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2007-10-24 13:35 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
@ 2007-10-24 15:43 ` Arnaldo Carvalho de Melo
2007-10-25 14:03 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
2007-10-25 17:13 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
5 siblings, 0 replies; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2007-10-24 15:43 UTC (permalink / raw)
To: dccp
Em Wed, Oct 24, 2007 at 02:35:42PM +0100, Gerrit Renker escreveu:
> Quoting Arnaldo Carvalho de Melo:
> | > I think that dccpprobe.c is the wrong name ... it should really be called ccid3_probe.c ...
> | > I have been working on printing entries for CCID2, since in ccid2.c there is no probe support,
> | > and instead ccid2_pr_debug is used for the same purpose all over the place.
> |
> | Indeed, lemme try converting it right now...
> |
> This is how far I came (only for info, applies only on test tree):
Cool, but what I meant to say was that I was going to try and convert
dccpprobe to be a systemtap script, and this is how far I went, forgot
about x_calc, something fishy there, but take a look at the
dccp_ccid3_probe.stp and its output. The full sources for the tapsets
used (for things like ccid3_hc_tx_sk_rtt(), etc) are at:
http://oops.ghostprotocols.net:81/acme/nettaps.tar.bz2
Still a bit hackish, as we don't expose the ccids header files in
include/net/ for systemtap to use and I tried this on a kernel packaged
as an RPM (kernel-debuginfo, etc), perhaps something to consider
changing. But I used include/linux/tfrc.h, that is exposed and had what
I want.
Ah, and this was over gigabit ethernet, over wi-fi it gets to a crawl
after a while, have to check with your experimental tree, probably you
already fixed this issue.
[root@mica nettaps]# cat dccp_ccid3_probe.stp
#!/usr/bin/stap
global filter_dport = 5001
global rtts
global x_calcs
global ipis
probe dccp_user_out = module("dccp").function("dccp_sendmsg")
{
dport = inet_sk_dport($sk)
x_calc = ccid3_hc_tx_sk_x_calc($sk)
rtt = ccid3_hc_tx_sk_rtt($sk)
ipi = ccid3_hc_tx_sk_ipi($sk)
}
probe dccp_user_out
{
if (dport != filter_dport)
next
rtts <<< rtt
x_calcs <<< x_calc
ipis <<< ipi
}
probe end
{
printf("rtt: count: %d, min: %d, max: %d, avg: %d\n",
@count(rtts), @min(rtts), @max(rtts), @avg(rtts))
print(@hist_linear(rtts, 0, 1000, 20))
printf("x_calc: count: %d, min: %d, max: %d, avg: %d\n",
@count(x_calcs), @min(x_calcs), @max(x_calcs), @avg(x_calcs))
print(@hist_linear(x_calcs, 0, 100000, 2000))
printf("ipi: count: %d, min: %d, max: %d, avg: %d\n",
@count(ipis), @min(ipis), @max(ipis), @avg(ipis))
print(@hist_linear(ipis, 0, 600, 10))
}
[root@mica nettaps]#
[root@mica nettaps]# stap -I tapset/ dccp_ccid3_probe.stp # to finish it press control+C
rtt: count: 38746, min: 0, max: 390, avg: 286
value |-------------------------------------------------- count
0 | 1
20 | 0
40 | 0
60 | 0
80 | 0
100 | 0
120 | 0
140 | 0
160 | 17
180 | 19
200 | 21
220 |@ 248
240 |@@@@@@@@@@@@@@@@@@@@@@@@ 5510
260 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10143
280 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11290
300 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9095
320 |@@@@@@ 1476
340 |@@ 463
360 |@ 370
380 | 93
400 | 0
420 | 0
x_calc: count: 38746, min: 0, max: 0, avg: 0
value |-------------------------------------------------- count
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 38746
2000 | 0
4000 | 0
ipi: count: 38746, min: 0, max: 7473, avg: 162
value |-------------------------------------------------- count
0 | 1
10 |@@@@ 654
20 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7255
30 |@@@@@@@@@@@@@@@@@@@ 2876
40 |@@@@@@@@@@@@@@@@@@@@@@ 3232
50 |@@@@@@@@@@@@@@@@@@@@@@@@@ 3678
60 |@@@@@@@@@@@@@@@@@@@ 2775
70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4188
80 |@@@@@@@@@@@@@@ 2186
90 |@@@@@@@@@@@@@ 1986
100 |@@@@@@ 940
110 |@@@@@ 813
120 |@@@@@@@@@@ 1579
130 |@@@@@ 738
140 |@ 226
150 |@@@@@@@@ 1235
160 |@@ 399
170 |@@@ 452
180 | 0
190 |@ 289
200 | 0
210 | 116
220 | 0
230 |@@ 311
240 | 0
250 |@@ 414
260 | 0
270 | 119
280 | 0
290 | 0
300 |@@@@@@@@ 1184
310 |@@ 412
320 | 0
330 | 0
340 | 0
350 | 0
360 | 0
370 | 0
380 | 0
390 | 0
400 | 0
410 | 0
420 | 0
430 | 0
440 | 0
450 | 0
460 | 0
470 | 0
480 | 0
490 | 0
500 | 0
510 | 0
520 | 0
530 | 0
540 | 0
550 | 0
560 | 0
570 | 0
580 | 0
590 |@@@@ 688
[root@mica nettaps]#
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: systemtap networking tapsets was: Re: [RFC]: field name identifier conventions
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2007-10-24 15:43 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
@ 2007-10-25 14:03 ` Gerrit Renker
2007-10-25 17:13 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
5 siblings, 0 replies; 7+ messages in thread
From: Gerrit Renker @ 2007-10-25 14:03 UTC (permalink / raw)
To: dccp
| The full sources for the tapsets used (for things like ccid3_hc_tx_sk_rtt(), etc) are at:
|
| http://oops.ghostprotocols.net:81/acme/nettaps.tar.bz2
|
This is awesome. Is all that is needed to run these a new systemtap binary? Mine is 0.5.9
and too old for that, and I need to do some rtfm in the stap manuals.
It would be great to upload a few standard scripts and continually use them for regression
tests - it seems the stuff can again be wrapped into bash, python, etc, so that some test
runs could be automated.
| Still a bit hackish, as we don't expose the ccids header files in
| include/net/ for systemtap to use and I tried this on a kernel packaged
| as an RPM (kernel-debuginfo, etc), perhaps something to consider
| changing.
When doing this for CCID2, the same problem arises. Maybe the struct_tfrc can be converted
into a generic (lean) info structure (suitable for multiple CCIDs), afaik DCCP is the only
user of include/linux/dccp.h, while the real TFRC work is done in net/dccp/ccids/lib.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: systemtap networking tapsets was: Re: [RFC]: field name
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2007-10-25 14:03 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
@ 2007-10-25 17:13 ` Arnaldo Carvalho de Melo
5 siblings, 0 replies; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2007-10-25 17:13 UTC (permalink / raw)
To: dccp
Em Thu, Oct 25, 2007 at 03:03:55PM +0100, Gerrit Renker escreveu:
> | The full sources for the tapsets used (for things like ccid3_hc_tx_sk_rtt(), etc) are at:
> |
> | http://oops.ghostprotocols.net:81/acme/nettaps.tar.bz2
> |
> This is awesome. Is all that is needed to run these a new systemtap binary? Mine is 0.5.9
> and too old for that, and I need to do some rtfm in the stap manuals.
Here I have: 0.5.13, so you are not that off:
stap_fa52dacd83be5dbb4b8bcbb890f82bba_4257: systemtap: 0.5.13, base: ffffffff88365000, memory: 68795+40885+53408+164320+31157464 data+text+ctx+io+glob, probes: 4
> It would be great to upload a few standard scripts and continually use them for regression
> tests - it seems the stuff can again be wrapped into bash, python, etc, so that some test
> runs could be automated.
Indeed, having some scripts and using them for regression testing seems
like an excellent idea. We can use it to mangle a packet on its way to
some of our routines to check if they are handling some specific
failures, etc. Ultimately we could end up with a nice set of scripts
that would test each and every condition we have to handle. Coverage
analysis could then be done using lcov, that would be really nirvana 8)
> | Still a bit hackish, as we don't expose the ccids header files in
> | include/net/ for systemtap to use and I tried this on a kernel packaged
> | as an RPM (kernel-debuginfo, etc), perhaps something to consider
> | changing.
> When doing this for CCID2, the same problem arises. Maybe the struct_tfrc can be converted
> into a generic (lean) info structure (suitable for multiple CCIDs), afaik DCCP is the only
> user of include/linux/dccp.h, while the real TFRC work is done in net/dccp/ccids/lib.
Yeah, making it easier for systemtappin' is in my plans on the dccp
files layout. I'll even advocate for these scripts to be shipped with
the kernel sources.
Ok, back to TCP misuse investigations for a living, hope to have time to
merge some more patches later today. :-)
- Arnaldo
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-10-25 17:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-22 16:31 systemtap networking tapsets was: Re: [RFC]: field name identifier Arnaldo Carvalho de Melo
2007-10-24 12:11 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
2007-10-24 13:32 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
2007-10-24 13:35 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
2007-10-24 15:43 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
2007-10-25 14:03 ` systemtap networking tapsets was: Re: [RFC]: field name identifier conventions Gerrit Renker
2007-10-25 17:13 ` systemtap networking tapsets was: Re: [RFC]: field name Arnaldo Carvalho de Melo
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.