#!/bin/bash
#
# Script example for many flows testing
#
# Number of simultaneous flows limited by variable $FLOWS
# and number of packets per flow controlled by variable $FLOWLEN
#
basedir=`dirname $0`
source ${basedir}/functions.sh
root_check_run_with_sudo "$@"
# Parameter parsing via include
source ${basedir}/parameters.sh
# Set some default params, if they didn't get set
[ -z "$DEST_IP" ] && DEST_IP="198.18.0.42"
[ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff"
[ -z "$CLONE_SKB" ] && CLONE_SKB="0"
# NOTICE: Script specific settings
# =======
# Limiting the number of concurrent flows ($FLOWS)
# and also set how many packets each flow contains ($FLOWLEN)
#
[ -z "$FLOWS" ] && FLOWS="8000"
[ -z "$FLOWLEN" ] && FLOWLEN="10"
# Base Config
DELAY="0" # Zero means max speed
COUNT="0" # Zero means indefinitely
if [[ -n "$BURST" ]]; then
err 1 "Bursting not supported for this mode"
fi
# General cleanup everything since last run
pg_ctrl "reset"
# Threads are specified with parameter -t value in $THREADS
for ((thread = 0; thread < $THREADS; thread++)); do
dev=${DEV}@${thread}
# Add remove all other devices and add_device $dev to thread
pg_thread $thread "rem_device_all"
pg_thread $thread "add_device" $dev
# Base config
pg_set $dev "flag QUEUE_MAP_CPU"
pg_set $dev "count $COUNT"
pg_set $dev "clone_skb $CLONE_SKB"
pg_set $dev "pkt_size $PKT_SIZE"
pg_set $dev "delay $DELAY"
pg_set $dev "flag NO_TIMESTAMP"
# Single destination
pg_set $dev "dst_mac $DST_MAC"
pg_set $dev "dst $DEST_IP"
# Randomize source IP-addresses
pg_set $dev "flag IPSRC_RND"
pg_set $dev "src_min 198.18.0.0"
pg_set $dev "src_max 198.19.255.255"
# Limit number of flows (max 65535)
pg_set $dev "flows $FLOWS"
#
# How many packets a flow will send, before flow "entry" is
# re-generated/setup.
pg_set $dev "flowlen $FLOWLEN"
#
# Flag FLOW_SEQ will cause $FLOWLEN packets from the same flow
# being send back-to-back, before next flow is selected
# incrementally. This helps lookup caches, and is more realistic.
#
pg_set $dev "flag FLOW_SEQ"
done
# Run if user hits control-c
function print_result() {
# Print results
for ((thread = 0; thread < $THREADS; thread++)); do
dev=${DEV}@${thread}
echo "Device: $dev"
cat /proc/net/pktgen/$dev | grep -A2 "Result:"
done
}
# trap keyboard interrupt (Ctrl-C)
trap true SIGINT
echo "Running... ctrl^C to stop" >&2
pg_ctrl "start"
print_result
>author
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull DAX updates from Dan Williams:
"The completion of Jan's DAX work for 4.10.
As I mentioned in the libnvdimm-for-4.10 pull request, these are some
final fixes for the DAX dirty-cacheline-tracking invalidation work
that was merged through the -mm, ext4, and xfs trees in -rc1. These
patches were prepared prior to the merge window, but we waited for
4.10-rc1 to have a stable merge base after all the prerequisites were
merged.
Quoting Jan on the overall changes in these patches:
"So I'd like all these 6 patches to go for rc2. The first three
patches fix invalidation of exceptional DAX entries (a bug which
is there for a long time) - without these patches data loss can
occur on power failure even though user called fsync(2). The other
three patches change locking of DAX faults so that ->iomap_begin()
is called in a more relaxed locking context and we are safe to
start a transaction there for ext4"
These have received a build success notification from the kbuild
robot, and pass the latest libnvdimm unit tests. There have not been
any -next releases since -rc1, so they have not appeared there"
* 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
ext4: Simplify DAX fault path
dax: Call ->iomap_begin without entry lock during dax fault
dax: Finish fault completely when loading holes
dax: Avoid page invalidation races and unnecessary radix tree traversals
mm: Invalidate DAX radix tree entries only if appropriate
ext2: Return BH_New buffers for zeroed blocks
Diffstat (limited to 'sound/isa/wavefront/wavefront_synth.c')