Skip to content

Move to perftool-incubator/bench-trafficgen #2722

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

portante
Copy link
Member

@portante portante commented Apr 2, 2022

The old TrafficGen repo has moved:

The new installed location is now /opt/bench-trafficgen/trafficgen.

The old TrafficGen repo has moved:

 * From: https://github.com/atheurer/trafficgen.git
 * To: https://github.com/perftool-incubator/bench-trafficgen.git

The new installed location is now `/opt/bench-trafficgen/trafficgen`.
@portante portante added enhancement Agent trafficgen pbench-trafficgen benchmark related labels Apr 2, 2022
@portante portante added this to the v0.69.10 milestone Apr 2, 2022
@portante portante requested a review from webbnh April 2, 2022 03:32
@portante portante self-assigned this Apr 2, 2022
@portante
Copy link
Member Author

portante commented Apr 2, 2022

FYI @pradiptapks.

@pradiptapks
Copy link

pradiptapks commented Apr 4, 2022

@portante @webbnh

I have verified the latest pbench-trafficgen.patch successfully in pbench-agent-0.69.9 rpm.
For reference, please find the configuration and results in detail.

Environment:

Red Hat Enterprise Linux release 8.4 (Ootpa)
Kernel: 4.18.0-305.40.2.el8_4.x86_64

Kernel and Tuned Profile setting

# cat /proc/cmdline 
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-305.40.2.el8_4.x86_64 root=/dev/mapper/vg_e25--h37--740xd-lv_root ro nofb splash=quiet crashkernel=auto resume=/dev/mapper/vg_e25--h37--740xd-lv_swap rd.lvm.lv=vg_e25-h37-740xd/lv_root rd.lvm.lv=vg_e25-h37-740xd/lv_swap rhgb quiet skew_tick=1 nohz=on nohz_full=10-31,42-63 rcu_nocbs=10-31,42-63 tuned.non_isolcpus=000003ff,000003ff intel_pstate=disable nosoftlockup skew_tick=1 nohz=on nohz_full=10-31,42-63 rcu_nocbs=10-31,42-63 tuned.non_isolcpus=000003ff,000003ff intel_pstate=disable nosoftlockup default_hugepagesz=1GB hugepagesz=1G hugepages=100 iommu=pt intel_iommu=on isolcpus=10-31,42-63 ipv6.disable=1 vfio.enable_unsafe_noiommu_mode=Y
# tuned-adm active
Current active profile: cpu-partitioning
# grep ^[^#] /etc/tuned/cpu-partitioning-variables.conf 
isolated_cores=10-31,42-63
no_balance_cores=10-31,42-63

pbench-agent installed version

# rpm -qa |grep pbench
pbench-perl-Types-Serialiser-1.0-1.noarch
pbench-agent-0.69.9-24g90314ee7c.noarch
pbench-perl-common-sense-3.74-1.x86_64
pbench-perl-JSON-XS-4.03-1.x86_64
pbench-sysstat-12.0.3-1.x86_64

DPDK Version:

# rpm -qa *dpdk*
dpdk-tools-20.11-3.el8.x86_64
dpdk-20.11-3.el8.x86_64

Set Alias for DPDK Devbind:
Note: From RHEL8.x, the dpdk-devbind command changed to dpdk-devbind.py. So manually updated the command details in pbench-trafficgen.

# grep dpdk-devbind /opt/pbench-agent/bench-scripts/pbench-trafficgen
                                if dpdk-devbind.py -u $dev; then
                                        dpdk-devbind.py -b vfio-pci $dev
                                dpdk-devbind.py -b vfio-pci $dev

Install JSON schema
dnf install python3-jsonschema

Applying pbench-trafficgen patch:

# cd /opt/pbench-agent/bench-scripts
# patch < /root/pbench-trafficgen.patch                                                                                                                                                                    
patching file pbench-trafficgen

# grep bench-trafficgen pbench-trafficgen
        trafficgen_dir="/opt/bench-trafficgen/trafficgen"
                if pushd /opt >/dev/null && git clone https://github.com/perftool-incubator/bench-trafficgen.git; then

pbench-trafficgen command:
pbench-trafficgen --traffic-generator=trex-txrx --devices=0000:86:00.0,0000:86:00.1 --samples=1 --max-loss-pct=0.002 --config=Test --frame-sizes=64 --num-flows=128 --traffic-directions=bidirectional --flow-mods=src-ip --tool-period=binary-search --skip-git-pull --search-runtime=30 --validation-runtime=120 --rate=100 --rate-unit=% -- --send-teaching-measurement --send-teaching-warmup --teaching-measurement-packet-type=generic --teaching-warmup-packet-type=generic --disable-flow-cache

Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @pradiptapks!

For us Pbench folks,

Set Alias for DPDK Devbind

Unfortunately, I don't think that DPDK gets installed implicitly or automatically...but, however it gets installed, there should probably be a symlink set up for dpdk-devbind so that the script doesn't have to be modified (although, I suppose we could augment the script to make it smart enough to figure out how to find the .py file if the naked command isn't there). I'm surprised that the DPDK RPM doesn't do this already...it seems like changing the name of the command would be an incompatible change.

dnf install python3-jsonschema

I've seen what happens if this is missing, but I haven't learned where the dependency for this is. Is this something that the user just has to do (like installing DPDK), or should this be a dependency of the Pbench Agent RPM? (Given that, apparently, nothing but the trafficgen support uses it, I would prefer that it not be added as a general dependency, but....) If it's not going to be installed implicitly, we need to figure out how to fail more gracefully when it is missing!

@webbnh webbnh merged commit 34d8197 into distributed-system-analysis:b0.69 Apr 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Agent enhancement trafficgen pbench-trafficgen benchmark related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants