|
1 # This patch was developed both in-house and from outside. We plan to submit it |
|
2 # upstream, but do not yet have a target date for doing so |
|
3 # |
1 diff -r -u /tmp/730054/qperf-0.4.6/src/socket.c qperf-0.4.6/src/socket.c |
4 diff -r -u /tmp/730054/qperf-0.4.6/src/socket.c qperf-0.4.6/src/socket.c |
2 --- /tmp/730054/qperf-0.4.6/src/socket.c Mon Aug 31 00:00:40 2009 |
5 --- /tmp/730054/qperf-0.4.6/src/socket.c Mon Aug 31 00:00:40 2009 |
3 +++ qperf-0.4.6/src/socket.c Mon Nov 8 11:10:20 2010 |
6 +++ qperf-0.4.6/src/socket.c Mon Nov 8 11:10:20 2010 |
4 @@ -44,7 +44,9 @@ |
7 @@ -44,7 +44,9 @@ |
5 /* |
8 /* |
561 + send_mesg(&port, sizeof(port), "RDMA CM TCP IPv4 server port"); |
564 + send_mesg(&port, sizeof(port), "RDMA CM TCP IPv4 server port"); |
562 +#endif |
565 +#endif |
563 cm_expect_event(dev, RDMA_CM_EVENT_CONNECT_REQUEST); |
566 cm_expect_event(dev, RDMA_CM_EVENT_CONNECT_REQUEST); |
564 rd_create_qp(dev, cm->event->id->verbs, cm->event->id); |
567 rd_create_qp(dev, cm->event->id->verbs, cm->event->id); |
565 |
568 |
|
569 @@ -2012,7 +2071,7 @@ |
|
570 char *p = index(Req.id, ':'); |
|
571 |
|
572 if (p) { |
|
573 - *p++ = '\0'; |
|
574 + p++; |
|
575 port = atoi(p); |
|
576 if (port < 1) |
|
577 error(0, "bad IB port: %d; must be at least 1", port); |
|
578 @@ -2050,10 +2109,18 @@ |
|
579 device = *dev->ib.devlist; |
|
580 else { |
|
581 struct ibv_device **d = dev->ib.devlist; |
|
582 - while ((device = *d++)) |
|
583 - if (streq(ibv_get_device_name(device), name)) |
|
584 + size_t n = strlen(name); |
|
585 + char *p = index(Req.id, ':'); |
|
586 + if (p) { |
|
587 + n = p - Req.id; |
|
588 + } |
|
589 + while ((device = *d++)) { |
|
590 + if (streqn(ibv_get_device_name(device), name, n)) { |
|
591 break; |
|
592 + } |
|
593 + } |
|
594 } |
|
595 + |
|
596 if (!device) |
|
597 error(SYS, "failed to find InfiniBand device"); |
|
598 dev->ib.context = ibv_open_device(device); |
566 diff -r -u /tmp/730054/qperf-0.4.6/src/rds.c qperf-0.4.6/src/rds.c |
599 diff -r -u /tmp/730054/qperf-0.4.6/src/rds.c qperf-0.4.6/src/rds.c |
567 --- /tmp/730054/qperf-0.4.6/src/rds.c Mon Aug 31 00:00:40 2009 |
600 --- /tmp/730054/qperf-0.4.6/src/rds.c Mon Aug 31 00:00:40 2009 |
568 +++ qperf-0.4.6/src/rds.c Mon Nov 8 11:10:19 2010 |
601 +++ qperf-0.4.6/src/rds.c Mon Nov 8 11:10:19 2010 |
569 @@ -44,6 +44,9 @@ |
602 @@ -44,6 +44,9 @@ |
570 #include <netinet/in.h> |
603 #include <netinet/in.h> |
647 port = atoi(p); |
680 port = atoi(p); |
648 if (!port) |
681 if (!port) |
649 diff -r -u /tmp/730054/qperf-0.4.6/src/qperf.h qperf-0.4.6/src/qperf.h |
682 diff -r -u /tmp/730054/qperf-0.4.6/src/qperf.h qperf-0.4.6/src/qperf.h |
650 --- /tmp/730054/qperf-0.4.6/src/qperf.h Mon Aug 31 00:00:40 2009 |
683 --- /tmp/730054/qperf-0.4.6/src/qperf.h Mon Aug 31 00:00:40 2009 |
651 +++ qperf-0.4.6/src/qperf.h Tue Oct 18 16:40:59 2011 |
684 +++ qperf-0.4.6/src/qperf.h Tue Oct 18 16:40:59 2011 |
652 @@ -193,6 +193,7 @@ |
685 @@ -49,6 +49,7 @@ |
|
686 #define cardof(a) (sizeof(a)/sizeof(*a)) |
|
687 #define endof(a) (&a[cardof(a)]) |
|
688 #define streq(a, b) (strcmp(a, b) == 0) |
|
689 +#define streqn(a, b, n) (strncmp(a, b, n) == 0) |
|
690 #define offset(t, e) ((long)&((t *)0)->e) |
|
691 #define is_client() (ServerName != 0) |
|
692 #define is_sender() (Req.flip ? !is_client() : is_client()) |
|
693 @@ -193,6 +194,7 @@ |
653 uint32_t no_cpus; /* Number of processors */ |
694 uint32_t no_cpus; /* Number of processors */ |
654 uint32_t no_ticks; /* Ticks per second */ |
695 uint32_t no_ticks; /* Ticks per second */ |
655 uint32_t max_cqes; /* Maximum CQ entries */ |
696 uint32_t max_cqes; /* Maximum CQ entries */ |
656 + __attribute__ ((aligned (8))) /* align with 32-bit & 64-bit binary */ |
697 + __attribute__ ((aligned (8))) /* align with 32-bit & 64-bit binary */ |
657 CLOCK time_s[T_N]; /* Start times */ |
698 CLOCK time_s[T_N]; /* Start times */ |