On 10/28/2016 09:25 PM, Alex Bennée wrote:
It seems there is a limit to the number of arguments a UST trace event
can take and at 11 the previous trace command broke the build. Split the
trace into a src pkt and dst pkt trace to fix this.
Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
It looks good for me, but it not the root cause of this bug.
We better fix this in UST trace event codes....
But qemu 2.8 will be released, we need fix this quickly.
So...
Reviewed-by: Zhang Chen <zhangchen.f...@cn.fujitsu.com>
---
net/colo-compare.c | 21 +++++++++++----------
net/trace-events | 3 ++-
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/net/colo-compare.c b/net/colo-compare.c
index f791383..4ac916a 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -218,16 +218,17 @@ static int colo_packet_compare_tcp(Packet *spkt, Packet
*ppkt)
(spkt->size - ETH_HLEN));
if (res != 0 && trace_event_get_state(TRACE_COLO_COMPARE_MISCOMPARE)) {
- trace_colo_compare_pkt_info(inet_ntoa(ppkt->ip->ip_src),
- inet_ntoa(ppkt->ip->ip_dst),
- ntohl(ptcp->th_seq),
- ntohl(ptcp->th_ack),
- ntohl(stcp->th_seq),
- ntohl(stcp->th_ack),
- res, ptcp->th_flags,
- stcp->th_flags,
- ppkt->size,
- spkt->size);
+ trace_colo_compare_pkt_info_src(inet_ntoa(ppkt->ip->ip_src),
+ ntohl(stcp->th_seq),
+ ntohl(stcp->th_ack),
+ res, stcp->th_flags,
+ spkt->size);
+
+ trace_colo_compare_pkt_info_dst(inet_ntoa(ppkt->ip->ip_dst),
+ ntohl(ptcp->th_seq),
+ ntohl(ptcp->th_ack),
+ res, ptcp->th_flags,
+ ppkt->size);
qemu_hexdump((char *)ppkt->data, stderr,
"colo-compare ppkt", ppkt->size);
diff --git a/net/trace-events b/net/trace-events
index b1913a6..35198bc 100644
--- a/net/trace-events
+++ b/net/trace-events
@@ -13,7 +13,8 @@ colo_compare_icmp_miscompare(const char *sta, int size) ": %s =
%d"
colo_compare_ip_info(int psize, const char *sta, const char *stb, int ssize, const char
*stc, const char *std) "ppkt size = %d, ip_src = %s, ip_dst = %s, spkt size = %d,
ip_src = %s, ip_dst = %s"
colo_old_packet_check_found(int64_t old_time) "%" PRId64
colo_compare_miscompare(void) ""
-colo_compare_pkt_info(const char *src, const char *dst, uint32_t pseq, uint32_t pack,
uint32_t sseq, uint32_t sack, int res, uint32_t pflag, uint32_t sflag, int psize, int
ssize) "src/dst: %s/%s p: seq/ack=%u/%u s: seq/ack=%u/%u res=%d flags=%x/%x
ppkt_size: %d spkt_size: %d\n"
+colo_compare_pkt_info_src(const char *src, uint32_t sseq, uint32_t sack, int res,
uint32_t sflag, int ssize) "src/dst: %s s: seq/ack=%u/%u res=%d flags=%x spkt_size:
%d\n"
+colo_compare_pkt_info_dst(const char *dst, uint32_t dseq, uint32_t dack, int res,
uint32_t dflag, int dsize) "src/dst: %s d: seq/ack=%u/%u res=%d flags=%x dpkt_size:
%d\n"
# net/filter-rewriter.c
colo_filter_rewriter_debug(void) ""
--
Thanks
zhangchen