Bug 197372 - [NEW] net/tcpkali: high performance load generator against TCP and WebSocket servers
Summary: [NEW] net/tcpkali: high performance load generator against TCP and WebSocket ...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Muhammad Moinur Rahman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-06 13:25 UTC by Neel Chauhan
Modified: 2015-03-04 12:13 UTC (History)
2 users (show)

See Also:


Attachments
shar file for the new port net/tcpkali (version 0.4) (1.48 KB, text/plain)
2015-02-06 13:25 UTC, Neel Chauhan
no flags Details
Poudriere Build Log for the new port net/tcpkali (version 0.4) (45.30 KB, text/plain)
2015-02-06 13:25 UTC, Neel Chauhan
no flags Details
Updated shar file for the new port net/tcpkali (version 0.4) (1.52 KB, text/plain)
2015-02-19 13:44 UTC, Neel Chauhan
no flags Details
Updated Poudriere Build Log for the new port net/tcpkali (version 0.4) (45.61 KB, text/x-log)
2015-02-19 13:44 UTC, Neel Chauhan
no flags Details
[FAILED] 32-bit net/tcpkali Poudriere Build Log (43.79 KB, text/x-log)
2015-02-19 14:05 UTC, Neel Chauhan
no flags Details
shar file for net/tcpkali 0.4.2 (1.50 KB, text/plain)
2015-02-23 18:26 UTC, Neel Chauhan
no flags Details
poudriere build log for net.tcpkali 0.4.2 (i386) (50.37 KB, text/plain)
2015-02-23 18:26 UTC, Neel Chauhan
no flags Details
poudriere build log for net.tcpkali 0.4.2 (amd64) (49.19 KB, text/plain)
2015-02-23 18:27 UTC, Neel Chauhan
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Neel Chauhan 2015-02-06 13:25:19 UTC
Created attachment 152618 [details]
shar file for the new port net/tcpkali (version 0.4)

tcpkali is a high performance load generator against TCP and WebSocket servers.

WWW: https://www.github.com/machinezone/tcpkali

Keep in mind that the shar file for this port is attached, and the Poudriere Build Log will be uploaded shortly.
Comment 1 Neel Chauhan 2015-02-06 13:25:49 UTC
Created attachment 152619 [details]
Poudriere Build Log for the new port net/tcpkali (version 0.4)
Comment 2 Muhammad Moinur Rahman freebsd_committer 2015-02-19 10:15:50 UTC
Can you please check whether if this app builds on i386 arch? My poudriere failed on all i386 versions. The logs are as following:
http://pdr.s.ubze.ro/bulk/latest-per-pkg/tcpkali/0.4/

Additionally I believe you have to add USES=libtool gmake.
Comment 3 Neel Chauhan 2015-02-19 13:44:36 UTC
Created attachment 153174 [details]
Updated shar file for the new port net/tcpkali (version 0.4)
Comment 4 Neel Chauhan 2015-02-19 13:44:54 UTC
Created attachment 153175 [details]
Updated Poudriere Build Log for the new port net/tcpkali (version 0.4)
Comment 5 Muhammad Moinur Rahman freebsd_committer 2015-02-19 13:47:52 UTC
ONLY_FOR_ARCHS should be used as only the last resort. Are you more than sure that it doesn't work with i386 architectures? Maybe there is a fix. You might need to dig more. :P
Comment 6 Neel Chauhan 2015-02-19 14:05:22 UTC
Created attachment 153176 [details]
[FAILED] 32-bit net/tcpkali Poudriere Build Log

If I looked in the failed Poudriere Build Log for net/tcpkali for FreeBSD i386, I leaned that tcpkali relies on 64-bit assembly routines. I used "ONLY_FOR_ARCHS= amd64" because of these assembly routines. I have attached the failed Poudriere build log for FreeBSD i386, and have a snippet of the failed build with assembly routines on i386 below:

Making all in src
gmake[3]: Entering directory '/wrkdirs/usr/ports/net/tcpkali/work/machinezone-tcpkali-b61d011/src'
cc -DHAVE_CONFIG_H -I. -I..  -I../deps/libev -I../deps/libcows -I../deps/libstatsd/src -I../deps/HdrHistogram  -std=gnu99 -W -Wall -Wno-strict-aliasing -fno-strict-aliasing -O2 -pipe  -fstack-protector -fno-strict-aliasing -pthread -MT tcpkali-tcpkali_dns.o -MD -MP -MF .deps/tcpkali-tcpkali_dns.Tpo -c -o tcpkali-tcpkali_dns.o `test -f 'tcpkali_dns.c' || echo './'`tcpkali_dns.c
mv -f .deps/tcpkali-tcpkali_dns.Tpo .deps/tcpkali-tcpkali_dns.Po
cc -DHAVE_CONFIG_H -I. -I..  -I../deps/libev -I../deps/libcows -I../deps/libstatsd/src -I../deps/HdrHistogram  -std=gnu99 -W -Wall -Wno-strict-aliasing -fno-strict-aliasing -O2 -pipe  -fstack-protector -fno-strict-aliasing -pthread -MT tcpkali-tcpkali_engine.o -MD -MP -MF .deps/tcpkali-tcpkali_engine.Tpo -c -o tcpkali-tcpkali_engine.o `test -f 'tcpkali_engine.c' || echo './'`tcpkali_engine.c
In file included from tcpkali_engine.c:55:
./tcpkali_atomic.h:42:18: error: invalid operand for instruction
    asm volatile("lock addq %1, %0" : "+m" (*i) : "r" (v));
                 ^
<inline asm>:1:12: note: instantiated into assembly here
        lock addq %ecx, 184(%eax)
                  ^~~~~
In file included from tcpkali_engine.c:55:
./tcpkali_atomic.h:42:18: error: invalid operand for instruction
    asm volatile("lock addq %1, %0" : "+m" (*i) : "r" (v));
                 ^
<inline asm>:1:12: note: instantiated into assembly here
        lock addq %ecx, 192(%eax)
                  ^~~~~
In file included from tcpkali_engine.c:55:
./tcpkali_atomic.h:42:18: error: invalid operand for instruction
    asm volatile("lock addq %1, %0" : "+m" (*i) : "r" (v));
                 ^
<inline asm>:1:12: note: instantiated into assembly here
        lock addq %esi, 184(%eax)
                  ^~~~~
In file included from tcpkali_engine.c:55:
./tcpkali_atomic.h:42:18: error: invalid operand for instruction
    asm volatile("lock addq %1, %0" : "+m" (*i) : "r" (v));
                 ^
<inline asm>:1:12: note: instantiated into assembly here
        lock addq %esi, 192(%eax)
                  ^~~~~
In file included from tcpkali_engine.c:55:
./tcpkali_atomic.h:42:18: error: invalid operand for instruction
    asm volatile("lock addq %1, %0" : "+m" (*i) : "r" (v));
                 ^
<inline asm>:1:12: note: instantiated into assembly here
        lock addq %ecx, 184(%eax)
                  ^~~~~
In file included from tcpkali_engine.c:55:
./tcpkali_atomic.h:42:18: error: invalid operand for instruction
    asm volatile("lock addq %1, %0" : "+m" (*i) : "r" (v));
                 ^
<inline asm>:1:12: note: instantiated into assembly here
        lock addq %ecx, 192(%eax)
                  ^~~~~
6 errors generated.
Makefile:715: recipe for target 'tcpkali-tcpkali_engine.o' failed
gmake[3]: *** [tcpkali-tcpkali_engine.o] Error 1
gmake[3]: Leaving directory '/wrkdirs/usr/ports/net/tcpkali/work/machinezone-tcpkali-b61d011/src'
Makefile:406: recipe for target 'all-recursive' failed
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory '/wrkdirs/usr/ports/net/tcpkali/work/machinezone-tcpkali-b61d011'
Makefile:338: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory '/wrkdirs/usr/ports/net/tcpkali/work/machinezone-tcpkali-b61d011'
*** Error code 1
Comment 7 Neel Chauhan 2015-02-23 18:26:18 UTC
Created attachment 153380 [details]
shar file for net/tcpkali 0.4.2

I have gotten a personal email from the developers of tcpkali, and they have fixed 32-bit support. The updated shar file is attached, and the poudriere build logs will be uploaded shortly.
Comment 8 Neel Chauhan 2015-02-23 18:26:52 UTC
Created attachment 153381 [details]
poudriere build log for net.tcpkali 0.4.2 (i386)
Comment 9 Neel Chauhan 2015-02-23 18:27:06 UTC
Created attachment 153382 [details]
poudriere build log for net.tcpkali 0.4.2 (amd64)
Comment 10 commit-hook freebsd_committer 2015-03-04 12:12:34 UTC
A commit references this bug:

Author: bofh
Date: Wed Mar  4 12:11:49 UTC 2015
New revision: 380432
URL: https://svnweb.freebsd.org/changeset/ports/380432

Log:
  [NEW] net/tcpkali: High performance load generator for TCP and WebSocket
                     servers

  PR:		197372
  Submitted by:	neel@neelc.org
  Approved by:	bapt marino (implicit)

Changes:
  head/net/Makefile
  head/net/tcpkali/
  head/net/tcpkali/Makefile
  head/net/tcpkali/distinfo
  head/net/tcpkali/pkg-descr
Comment 11 Muhammad Moinur Rahman freebsd_committer 2015-03-04 12:13:29 UTC
Committed with minor changes.