Quoting Arnaldo Carvalho de Melo:
| I suggest it to become:
|
| [EMAIL PROTECTED] net-2.6.24]$ pahole -C dccp_request_sock
net/dccp/minisocks.o
|
| struct dccp_request_sock {
| struct inet_request_sock dreq_inet_rsk; /* 0 56 */
| __u64 dreq_iss; /* 56 8 */
| /* --- cacheline 1 boundary (64 bytes) --- */
| __u64 dreq_isr; /* 64 8 */
| __be32 dreq_service; /* 72 4 */
| __u32 dreq_tstamp_echo; /* 76 4 */
| ktime_t dreq_tstamp_time; /* 80 8 */
|
| /* size: 88, cachelines: 2 */
| /* last cacheline: 24 bytes */
| };
|
| Humm, these minisocks are getting fat... another thing for my TODO list,
| request_sock::ts_recent seems to be used only by the TCP machinery, ripe
| for the picking....
I have thought about this: do you think the following solution is better -
the difference between kmallocing and fixed is now between pointer to struct
and u64 (ktime_t).
struct dccp_request_sock {
struct inet_request_sock dreq_inet_rsk;
__u64 dreq_iss,
dreq_isr;
__be32 dreq_service;
#define dreq_tstamp_echo dreq_inet_rsk.req.ts_recent
ktime_t dreq_tstamp_time;
};
The only other thing that is required is then to change the insertion routine to
dccp_insert_option_timestamp_echo(struct sock *sk, struct dccp_request_sock
*dreq,
struct sk_buff *skb);
/* when @dreq is NULL, @sk is used */
On another note I think that the CCID2 code could benefit from using such
timestamps also, in particular
for high-speed networks.
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html