Age | Commit message (Collapse) | Author | Files | Lines |
|
The PROX tests were hanging in the duration
runner.
These are fixes for various errors:
raise error in collect_kpi if VNF is down
move prox dpdk_rebind after collectd stop
fix dpdk nicbind rebind to group by drivers
prox: raise error in collect_kpi if the VNF is down
prox: add VNF_TYPE for consistency
sample_vnf: debug and fix kill_vnf
pkill is not matching some executable names,
add some debug process dumps and try switching
back to killall until we can find the issue
sample_vnf: add default timeout, so we can override
default 3600 SSH timeout
collect_kpi is the point at which we check
the VNFs and TGs for failures or exits
queues are the problem make sure we aren't silently blocking on
non-empty queues by canceling join thread in subprocess
fixup duration runner to close queues
and other attempt to stop duration runner
from hanging
VnfdHelper: memoize port_num
resource: fail if ssh can't connect
at the end of 3600 second test our ssh connection
is dead, so we can't actually stop collectd
unless we reconnect
fix stop() logic to ignore ssh errors
Change-Id: I6c8e682a80cb9d00362e2fef4a46df080f304e55
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
set TRex -c option for threads per port based on
hardware number of queues.
We can't auto-detect number of queues and we can't
use more than one thread per core on systems with single-queue
interfaces, so move the option to the config file
options:
tg_0:
queues_per_port: 2
also enable trex debug by removing >/dev/null redirection
options:
tg_0:
trex_server_debug: true
Change-Id: I46da187849282bf28f4ef5b333e1ae890e202768
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
we don't want to block the test waiting to put KPIs
Add moderate timeout. In case we do timeout, it
doesn't matter if we drop intermitten KPIs
Change-Id: I049c785355993e6b286748a5c897d54dd2923dc9
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
allow manually adding collectd nodes using Node context.
if a node is present with a collectd config dict then
we can create a ResourceProfile object for it
and connect to collectd.
example
nodes:
-
name: compute_0
role: Compute
ip: 1.1.1.1
user: root
password: r00t
collectd:
interval: 5
plugins:
ovs_stats: {}
Change-Id: Ie0c00fdb58373206071daa1fb13faf175c4313e0
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
|
|
Change-Id: I80aa7e796b9ca4c4881c78310860e293a4a75560
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Empty ssh_options led to ssh login failure, which stopped the whole
script.
Change-Id: I8374a30a02b14d04eb0f623a0c58d7ebed77a589
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
|
|
|
|
|
|
|
|
|
|
JIRA: YARDSTICK-802
Updated the handle config for l3fwd 2 port test
The tx and rx descripters is removed as they
were not there in original DATS config.
The BM test was dropping packets beacuse of this.
Change-Id: I40d113267cbb3376a772b5a5aaecf74bea9d06fb
Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
|
|
Sometimes the runners can hang. Initially
debugging lead to the queue join thread, so I thought
we could cancel all the join threads and everything would be okay.
But it turns out canceling the queue join threads can lead
to corruption of the queues, so when we go to drain the queues
the task hangs.
But it also turns out that we were not properly draining
the queues in the task process. We were waiting for all
the runners to exit, then draining the queues.
This is bad and will cause the queues to fill up and hang
and/or drop data or corrupt the queues.
The proper fix seems to be to draining the queues in a
loop before calling join with a timeout.
Also modified the queue drain loops to no block on queue.get()
Revert "cancel all queue join threads"
This reverts commit 75c0e3a54b8f6e8fd77c7d9d95decab830159929.
Revert "duration runner: add teardown and cancel all queue join threads"
This reverts commit 7eb6abb6931b24e085b139cc3500f4497cdde57d.
Change-Id: Ic4f8e814cf23615621c1250535967716b425ac18
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
In some cases we are blocking in base.Runner join() because the
queues are not empty
call cancel_join_thread to prevent the Queue from blocking the
Process exit
https://docs.python.org/3.3/library/multiprocessing.html#all-platforms
Joining processes that use queues
Bear in mind that a process that has put items in a queue will wait
before terminating until all the buffered items are fed by the
"feeder" thread to the underlying pipe. (The child process can call
the cancel_join_thread() method of the queue to avoid this behaviour.)
This means that whenever you use a queue you need to make sure that
all items which have been put on the queue will eventually be removed
before the process is joined. Otherwise you cannot be sure that
processes which have put items on the queue will terminate. Remember
also that non-daemonic processes will be joined automatically.
Warning
As mentioned above, if a child process has put items on a queue (and
it has not used JoinableQueue.cancel_join_thread), then that process
will not terminate until all buffered items have been flushed to the
pipe.
This means that if you try joining that process you may get a deadlock
unless you are sure that all items which have been put on the queue
have been consumed. Similarly, if the child process is non-daemonic
then the parent process may hang on exit when it tries to join all its
non-daemonic children.
cancel_join_thread()
Prevent join_thread() from blocking. In particular, this prevents the
background thread from being joined automatically when the process
exits – see join_thread().
A better name for this method might be allow_exit_without_flush(). It
is likely to cause enqueued data to lost, and you almost certainly
will not need to use it. It is really only there if you need the
current process to exit immediately without waiting to flush enqueued
data to the underlying pipe, and you don’t care about lost data.
Change-Id: I61f11a3b01109d96b7a5445c60f1e171401157fc
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
calculate timeout once
catch exceptions in benchmark.teardown()
In some cases we are blocking in base.Runner join() because the
queues are not empty
call cancel_join_thread to prevent the Queue from blocking the
Process exit
https://docs.python.org/3.3/library/multiprocessing.html#all-platforms
Joining processes that use queues
Bear in mind that a process that has put items in a queue will wait
before terminating until all the buffered items are fed by the
"feeder" thread to the underlying pipe. (The child process can call
the cancel_join_thread() method of the queue to avoid this behaviour.)
This means that whenever you use a queue you need to make sure that
all items which have been put on the queue will eventually be removed
before the process is joined. Otherwise you cannot be sure that
processes which have put items on the queue will terminate. Remember
also that non-daemonic processes will be joined automatically.
Warning
As mentioned above, if a child process has put items on a queue (and
it has not used JoinableQueue.cancel_join_thread), then that process
will not terminate until all buffered items have been flushed to the
pipe.
This means that if you try joining that process you may get a deadlock
unless you are sure that all items which have been put on the queue
have been consumed. Similarly, if the child process is non-daemonic
then the parent process may hang on exit when it tries to join all its
non-daemonic children.
cancel_join_thread()
Prevent join_thread() from blocking. In particular, this prevents the
background thread from being joined automatically when the process
exits – see join_thread().
A better name for this method might be allow_exit_without_flush(). It
is likely to cause enqueued data to lost, and you almost certainly
will not need to use it. It is really only there if you need the
current process to exit immediately without waiting to flush enqueued
data to the underlying pipe, and you don’t care about lost data.
Change-Id: If7b904a060b9ed68b7def78c851deefca4e0de5d
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
In some cases we are blocking in base.Runner join() because the
queues are not empty
call cancel_join_thread to prevent the Queue from blocking the
Process exit
https://docs.python.org/3.3/library/multiprocessing.html#all-platforms
Joining processes that use queues
Bear in mind that a process that has put items in a queue will wait
before terminating until all the buffered items are fed by the
"feeder" thread to the underlying pipe. (The child process can call
the cancel_join_thread() method of the queue to avoid this behaviour.)
This means that whenever you use a queue you need to make sure that
all items which have been put on the queue will eventually be removed
before the process is joined. Otherwise you cannot be sure that
processes which have put items on the queue will terminate. Remember
also that non-daemonic processes will be joined automatically.
Warning
As mentioned above, if a child process has put items on a queue (and
it has not used JoinableQueue.cancel_join_thread), then that process
will not terminate until all buffered items have been flushed to the
pipe.
This means that if you try joining that process you may get a deadlock
unless you are sure that all items which have been put on the queue
have been consumed. Similarly, if the child process is non-daemonic
then the parent process may hang on exit when it tries to join all its
non-daemonic children.
cancel_join_thread()
Prevent join_thread() from blocking. In particular, this prevents the
background thread from being joined automatically when the process
exits – see join_thread().
A better name for this method might be allow_exit_without_flush(). It
is likely to cause enqueued data to lost, and you almost certainly
will not need to use it. It is really only there if you need the
current process to exit immediately without waiting to flush enqueued
data to the underlying pipe, and you don’t care about lost data.
Change-Id: I345c722a752bddf9f0824a11cdf52ae9f04669af
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I05cb069984b7674924cfcb1ed023048c0aa0c444
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I780aa3ea6b04df08baffb5ee5beff66bdc37f37e
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
JIRA: YARDSTICK-817
Since checkno.png and checkyes.png is not Apache-2 license based.
so we need to remove them.
Change-Id: I40dd303fb54a3736ca969ac1c186d2cd23408436
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
|
|
Change-Id: I03976c182e164a512a5ef48ad20928f27451c3f6
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: I031cc7f24f0c0816eb577a4d1606a714f68a5f83
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
Change-Id: Ia7c1ce781075142910a6c618a9a23f34a710dfe9
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
new context names:
- SRIOV - StandaloneSriov
- OvsDpdk - StandaloneOvsDpdk
- Seperate helper, libvirt, server info class
- Allow multi-port and multi-VM support.
Change-Id: I3c65e4535082fa0e2f4c6ee11c3bca9ccfdc01b8
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Martin Banszel <martinx.banszel@intel.com>
|
|
JIRA: YARDSTICK-802
Updated the Grafana dashboards to collect KPI's
correctly & incorporate scale up changes in topology
Influx-db stores the KPI’s fields as: <TG><Port><kpi>
TG has changed from : tg__1 to tg__0
VNF has changed from : vnf__1 to vnf__0
Change-Id: I3bd8be61210906bc4de95c9b1986033572d93277
Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
|
|
The part which gets the image architecture still uses the old fuel command.
Adapted the script to use the mcp command.
JIRA: ARMBAND-285
Change-Id: Iddce77c3a856ea11f9994861151db89a402e735e
Signed-off-by: Cristina Pauna <cristina.pauna@enea.com>
|
|
Change-Id: I8529f33d849fc659b557e1d19761c0765ebda57e
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: Ib2b165c41121b29b2af378dc420c2360786de3f0
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
management route ip is not common in most SUTs, so it should
be removed.
also huawei pod1 ipmi info should updated so this test case
can be added into ci later
Change-Id: I3a29c59c473ee7087d4d61753ffc955b061571fb
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
Change-Id: Iff39fa5b90d1ae5534ce1fff31dfb84c1e47340c
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
|
|
Change-Id: I0305c263740c25bdfa3bb2667838ca2b75d33ba0
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
required DPDK fixes to enable building collectd with dpdkstats
need /usr/lib/dpdk-pmd symlinks
Compiling all this code requies more space than the default ubuntu
cloud-image, so we need to resize the cloud image somehow
Change-Id: Ib39fc94ba8101ca1aebc7d2a710be88b0338f7c3
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
|
|
OpenStack.
Change-Id: Iad1dce6b0d0a1c010aa62f2fdf54c5d0560ed0c7
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
When an IP range is specified in src_ip/dst_ip like:
src_ip:
- '152.16.100.180-152.16.100.181'
yardstick would return str object has no attribute items error.
This change will return the IP range as is if type is str.
Change-Id: I3b097777f0d85b0600207157bebba18987ea2275
Signed-off-by: Dino Simeon Madarang <dinox.madarang@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|