Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 111510
b: refs/heads/master
c: b8c6bce
h: refs/heads/master
v: v3
  • Loading branch information
Gerrit Renker committed Sep 4, 2008
1 parent 7e0c984 commit 0cdf0ab
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 42 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a9c1656ab10480cc6f6d34f193bcde2729fe8037
refs/heads/master: b8c6bcee1dbc1aadcd67af998e414e73fa166a7d
66 changes: 25 additions & 41 deletions trunk/net/dccp/probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,70 +46,54 @@ static struct {
struct kfifo *fifo;
spinlock_t lock;
wait_queue_head_t wait;
struct timespec tstart;
ktime_t start;
} dccpw;

static void printl(const char *fmt, ...)
{
va_list args;
int len;
struct timespec now;
char tbuf[256];

va_start(args, fmt);
getnstimeofday(&now);

now = timespec_sub(now, dccpw.tstart);

len = sprintf(tbuf, "%lu.%06lu ",
(unsigned long) now.tv_sec,
(unsigned long) now.tv_nsec / NSEC_PER_USEC);
len += vscnprintf(tbuf+len, sizeof(tbuf)-len, fmt, args);
va_end(args);

kfifo_put(dccpw.fifo, tbuf, len);
wake_up(&dccpw.wait);
}

static int jdccp_sendmsg(struct kiocb *iocb, struct sock *sk,
struct msghdr *msg, size_t size)
static void jdccp_write_xmit(struct sock *sk)
{
const struct inet_sock *inet = inet_sk(sk);
struct ccid3_hc_tx_sock *hctx = NULL;
struct timespec tv;
char buf[256];
int len, ccid = ccid_get_current_tx_ccid(dccp_sk(sk));

if (ccid_get_current_tx_ccid(dccp_sk(sk)) == DCCPC_CCID3)
if (ccid == DCCPC_CCID3)
hctx = ccid3_hc_tx_sk(sk);

if (port == 0 || ntohs(inet->dport) == port ||
ntohs(inet->sport) == port) {
if (hctx)
printl("%d.%d.%d.%d:%u %d.%d.%d.%d:%u %d %d %d %d %u "
"%llu %llu %d\n",
if (!port || ntohs(inet->dport) == port || ntohs(inet->sport) == port) {

tv = ktime_to_timespec(ktime_sub(ktime_get(), dccpw.start));
len = sprintf(buf, "%lu.%09lu %d.%d.%d.%d:%u %d.%d.%d.%d:%u %d",
(unsigned long)tv.tv_sec,
(unsigned long)tv.tv_nsec,
NIPQUAD(inet->saddr), ntohs(inet->sport),
NIPQUAD(inet->daddr), ntohs(inet->dport), size,
NIPQUAD(inet->daddr), ntohs(inet->dport), ccid);

if (hctx)
len += sprintf(buf + len, " %d %d %d %u %u %u %d",
hctx->s, hctx->rtt, hctx->p, hctx->x_calc,
hctx->x_recv >> 6, hctx->x >> 6, hctx->t_ipi);
else
printl("%d.%d.%d.%d:%u %d.%d.%d.%d:%u %d\n",
NIPQUAD(inet->saddr), ntohs(inet->sport),
NIPQUAD(inet->daddr), ntohs(inet->dport), size);
(unsigned)(hctx->x_recv >> 6),
(unsigned)(hctx->x >> 6), hctx->t_ipi);

len += sprintf(buf + len, "\n");
kfifo_put(dccpw.fifo, buf, len);
wake_up(&dccpw.wait);
}

jprobe_return();
return 0;
}

static struct jprobe dccp_send_probe = {
.kp = {
.symbol_name = "dccp_sendmsg",
.symbol_name = "dccp_write_xmit",
},
.entry = jdccp_sendmsg,
.entry = jdccp_write_xmit,
};

static int dccpprobe_open(struct inode *inode, struct file *file)
{
kfifo_reset(dccpw.fifo);
getnstimeofday(&dccpw.tstart);
dccpw.start = ktime_get();
return 0;
}

Expand Down

0 comments on commit 0cdf0ab

Please sign in to comment.