On 19/03/2017 16:28, Paul Blakey wrote:
Hi all,
While using out patches for HW offload we've noticed we get a ovs
assertion at transition ukey, which tries to
transition the ukey state from EVICTED back to OPERATIONAL.
With furthur investigation it seem that this can happen without our HW
offload patches as there might be a race between handle_upcalls and
revalidate.
The procedure is as such:
handle_upcalls receives a new upcall and creates a new ukey, its state
is VISIBLE, it then it installs a flow (FLOW_PUT) to the datapat and
upon success wants to set the ukey state to OPERATIONAL (line 1408). for
that the handler running handle_upcalls wants to reaquirce the ukey
lock, but in the meantime revalidators dump (line 2261) the already
inserted flow and want to delete this flow (line 2328, say because of
openflow db changes, or aging). The revalidator deletes the flow and
moves the ukey from
VISIBLE -> OPERATIONAL (line 2320) -> EVICTING (line 2220) -> EVICTED
(line 2134)
finally handler succesfuly acquires the flow and now set the state to
OPERERTIONAL which will cause the assert in transition_ukey.
Line numbers in question are from ofproto/ofproto-dpif-upcall.c
I can provide a test the could show this happening, basicly adding a
sleep before (writing it now).
Thanks,
Paul Blakey.
New test patch below,
To reproduce run this bash script:
########## START OF SCRIPT ###############################
#setup: veth0 <-> veth1 <-> OVS <-> veth2@ns0 <-> veth3@ns0
# VM1_IP VM2_IP
VM1_IP=77.77.77.7
VM2_IP=77.77.77.8
echo "deleting bridges (if ovs is running)"
ovs-vsctl list-br | xargs -r -l ovs-vsctl del-br
echo "deleting namespace"
ip netns del ns0 &> /dev/null
ip netns add ns0
echo "setup veth0-3"
ip link del veth0 &> /dev/null
ip link del veth1 &> /dev/null
ip link del veth2 &> /dev/null
ip link del veth3 &> /dev/null
ip link add veth0 type veth peer name veth1
ip link add veth2 type veth peer name veth3
echo "setup remote vm(veth3) $VM2_IP in namespace"
ip link set veth3 netns ns0
ip netns exec ns0 ifconfig veth3 $VM2_IP/24 up
echo "setup local vm(veth0) $VM1_IP"
ifconfig veth0 $VM1_IP/24 up
ifconfig veth1 up
ifconfig veth2 up
echo "restart ovs and delete bridges (if ovs wasn't running)"
systemctl restart openvswitch
sleep 2
ovs-vsctl list-br | xargs -r -l ovs-vsctl del-br
ovs-vsctl set Open_vSwitch . other_config:max-idle=250
ovs-vsctl set Open_vSwitch . other_config:n-handler-threads=1
ovs-vsctl set Open_vSwitch . other_config:n-revalidator-threads=5
echo "setup ovs with veth"
ovs-vsctl add-br brv-1
ovs-vsctl add-port brv-1 veth1
ovs-vsctl add-port brv-1 veth2
echo "pinging remote VM $VM2_IP"
ping $VM2_IP -i 2
##################END OF BASH SCRIPT################
and follow ovs-vswitchd.log
Here is the ovs-vswitchd.log I get:
2017-03-20T16:01:20.322Z|00001|vlog|INFO|opened log file
/var/log/openvswitch/ovs-vswitchd.log
2017-03-20T16:01:20.327Z|00002|ovs_numa|INFO|Discovered 16 CPU cores on
NUMA node 0
2017-03-20T16:01:20.327Z|00003|ovs_numa|INFO|Discovered 16 CPU cores on
NUMA node 1
2017-03-20T16:01:20.327Z|00004|ovs_numa|INFO|Discovered 2 NUMA nodes and
32 CPU cores
2017-03-20T16:01:20.327Z|00005|reconnect|INFO|unix:/var/run/openvswitch/db.sock:
connecting...
2017-03-20T16:01:20.327Z|00006|reconnect|INFO|unix:/var/run/openvswitch/db.sock:
connected
2017-03-20T16:01:20.334Z|00007|ofproto_dpif|INFO|system@ovs-system:
Datapath supports recirculation
2017-03-20T16:01:20.334Z|00008|ofproto_dpif|INFO|system@ovs-system: MPLS
label stack length probed as 1
2017-03-20T16:01:20.334Z|00009|ofproto_dpif|INFO|system@ovs-system:
Datapath supports truncate action
2017-03-20T16:01:20.335Z|00010|ofproto_dpif|INFO|system@ovs-system:
Datapath supports unique flow ids
2017-03-20T16:01:20.335Z|00011|ofproto_dpif|INFO|system@ovs-system:
Datapath does not support clone action
2017-03-20T16:01:20.335Z|00012|ofproto_dpif|INFO|system@ovs-system: Max
sample nesting level probed as 3
2017-03-20T16:01:20.335Z|00013|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_state
2017-03-20T16:01:20.335Z|00014|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_zone
2017-03-20T16:01:20.335Z|00015|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_mark
2017-03-20T16:01:20.335Z|00016|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_label
2017-03-20T16:01:20.335Z|00017|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_state_nat
2017-03-20T16:01:20.335Z|00018|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_orig_tuple
2017-03-20T16:01:20.366Z|00001|ofproto_dpif_upcall(handler1)|INFO|received
packet on unassociated datapath port 0
2017-03-20T16:01:20.367Z|00019|bridge|INFO|bridge brv-1: added interface
brv-1 on port 65534
2017-03-20T16:01:20.373Z|00020|bridge|INFO|bridge brv-1: added interface
veth2 on port 2
2017-03-20T16:01:20.379Z|00021|bridge|INFO|bridge brv-1: added interface
veth1 on port 1
2017-03-20T16:01:20.380Z|00022|bridge|INFO|bridge brv-1: using datapath
ID 00005a7f2804ff4f
2017-03-20T16:01:20.380Z|00023|connmgr|INFO|brv-1: added service
controller "punix:/var/run/openvswitch/brv-1.mgmt"
2017-03-20T16:01:20.397Z|00024|bridge|INFO|ovs-vswitchd (Open vSwitch)
2.7.90
2017-03-20T16:01:20.903Z|00001|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:1591b637-55f9-4479-941e-7a44062b0a7e: CREATED -> VISIBLE
2017-03-20T16:01:20.903Z|00002|ofproto_dpif_upcall(handler8)|INFO|put
count: 1
2017-03-20T16:01:20.903Z|00003|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:1591b637-55f9-4479-941e-7a44062b0a7e: VISIBLE -> OPERATIONAL
2017-03-20T16:01:21.031Z|00004|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: CREATED -> VISIBLE
2017-03-20T16:01:21.031Z|00005|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: CREATED -> VISIBLE
2017-03-20T16:01:21.031Z|00006|ofproto_dpif_upcall(handler8)|INFO|put
count: 2
2017-03-20T16:01:21.031Z|00007|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: VISIBLE -> OPERATIONAL
2017-03-20T16:01:21.031Z|00008|ofproto_dpif_upcall(handler8)|INFO|put
count: 3
2017-03-20T16:01:21.031Z|00009|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: VISIBLE -> OPERATIONAL
2017-03-20T16:01:21.155Z|00001|ofproto_dpif_upcall(revalidator9)|INFO|revalidate
2345 state transition for ukey
ufid:1591b637-55f9-4479-941e-7a44062b0a7e: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:21.155Z|00002|ofproto_dpif_upcall(revalidator9)|INFO|reval_op_init
2245 state transition for ukey
ufid:1591b637-55f9-4479-941e-7a44062b0a7e: OPERATIONAL -> EVICTING
2017-03-20T16:01:21.155Z|00003|ofproto_dpif_upcall(revalidator9)|INFO|revalidate
2345 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:21.155Z|00004|ofproto_dpif_upcall(revalidator9)|INFO|revalidate
2345 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:21.155Z|00005|ofproto_dpif_upcall(revalidator9)|INFO|push_dp_ops
2159 state transition for ukey
ufid:1591b637-55f9-4479-941e-7a44062b0a7e: EVICTING -> EVICTED
2017-03-20T16:01:21.156Z|00001|ofproto_dpif_upcall(revalidator13)|INFO|ukey_delete
1825 state transition for ukey
ufid:1591b637-55f9-4479-941e-7a44062b0a7e: EVICTED -> DELETED
2017-03-20T16:01:21.406Z|00006|ofproto_dpif_upcall(revalidator9)|INFO|revalidate
2345 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:21.406Z|00007|ofproto_dpif_upcall(revalidator9)|INFO|reval_op_init
2245 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: OPERATIONAL -> EVICTING
2017-03-20T16:01:21.406Z|00008|ofproto_dpif_upcall(revalidator9)|INFO|revalidate
2345 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:21.406Z|00009|ofproto_dpif_upcall(revalidator9)|INFO|reval_op_init
2245 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: OPERATIONAL -> EVICTING
2017-03-20T16:01:21.406Z|00010|ofproto_dpif_upcall(revalidator9)|INFO|push_dp_ops
2159 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: EVICTING -> EVICTED
2017-03-20T16:01:21.406Z|00011|ofproto_dpif_upcall(revalidator9)|INFO|push_dp_ops
2159 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: EVICTING -> EVICTED
2017-03-20T16:01:21.406Z|00001|ofproto_dpif_upcall(revalidator10)|INFO|ukey_delete
1825 state transition for ukey
ufid:2c4a95de-c670-4301-ac4e-d3b32483894e: EVICTED -> DELETED
2017-03-20T16:01:21.406Z|00001|ofproto_dpif_upcall(revalidator12)|INFO|ukey_delete
1825 state transition for ukey
ufid:72131844-bada-4d2a-bb84-75e5f7a031c6: EVICTED -> DELETED
2017-03-20T16:01:21.927Z|00010|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:87e128d2-8182-4488-9af2-d65b81402180: CREATED -> VISIBLE
2017-03-20T16:01:21.927Z|00011|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:f04759b5-22b6-4328-94a0-ee6654016a18: CREATED -> VISIBLE
2017-03-20T16:01:21.927Z|00012|ofproto_dpif_upcall(handler8)|INFO|put
count: 4
2017-03-20T16:01:21.927Z|00013|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:87e128d2-8182-4488-9af2-d65b81402180: VISIBLE -> OPERATIONAL
2017-03-20T16:01:21.927Z|00014|ofproto_dpif_upcall(handler8)|INFO|put
count: 5
2017-03-20T16:01:21.927Z|00015|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:f04759b5-22b6-4328-94a0-ee6654016a18: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.055Z|00016|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:b82a17b0-a9bf-449f-b6a2-3634a7b811b5: CREATED -> VISIBLE
2017-03-20T16:01:22.055Z|00017|ofproto_dpif_upcall(handler8)|INFO|ukey_install__
1679 state transition for ukey
ufid:2701af7d-8094-4229-838e-070838c79df4: CREATED -> VISIBLE
2017-03-20T16:01:22.055Z|00018|ofproto_dpif_upcall(handler8)|INFO|put
count: 6
2017-03-20T16:01:22.055Z|00019|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:b82a17b0-a9bf-449f-b6a2-3634a7b811b5: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.055Z|00020|ofproto_dpif_upcall(handler8)|INFO|put
count: 7
2017-03-20T16:01:22.055Z|00021|ofproto_dpif_upcall(handler8)|INFO|handle_upcalls
1423 state transition for ukey
ufid:2701af7d-8094-4229-838e-070838c79df4: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.158Z|00025|ofproto_dpif_upcall|INFO|reval_op_init
2245 state transition for ukey
ufid:2701af7d-8094-4229-838e-070838c79df4: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.158Z|00026|ofproto_dpif_upcall|INFO|push_dp_ops 2159
state transition for ukey ufid:2701af7d-8094-4229-838e-070838c79df4:
EVICTING -> EVICTED
2017-03-20T16:01:22.158Z|00027|ofproto_dpif_upcall|INFO|ukey_delete 1825
state transition for ukey ufid:2701af7d-8094-4229-838e-070838c79df4:
EVICTED -> DELETED
2017-03-20T16:01:22.158Z|00028|ofproto_dpif_upcall|INFO|reval_op_init
2245 state transition for ukey
ufid:f04759b5-22b6-4328-94a0-ee6654016a18: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.158Z|00029|ofproto_dpif_upcall|INFO|push_dp_ops 2159
state transition for ukey ufid:f04759b5-22b6-4328-94a0-ee6654016a18:
EVICTING -> EVICTED
2017-03-20T16:01:22.158Z|00030|ofproto_dpif_upcall|INFO|ukey_delete 1825
state transition for ukey ufid:f04759b5-22b6-4328-94a0-ee6654016a18:
EVICTED -> DELETED
2017-03-20T16:01:22.158Z|00031|ofproto_dpif_upcall|INFO|reval_op_init
2245 state transition for ukey
ufid:87e128d2-8182-4488-9af2-d65b81402180: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.158Z|00032|ofproto_dpif_upcall|INFO|push_dp_ops 2159
state transition for ukey ufid:87e128d2-8182-4488-9af2-d65b81402180:
EVICTING -> EVICTED
2017-03-20T16:01:22.158Z|00033|ofproto_dpif_upcall|INFO|ukey_delete 1825
state transition for ukey ufid:87e128d2-8182-4488-9af2-d65b81402180:
EVICTED -> DELETED
2017-03-20T16:01:22.158Z|00034|ofproto_dpif_upcall|INFO|reval_op_init
2245 state transition for ukey
ufid:b82a17b0-a9bf-449f-b6a2-3634a7b811b5: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.158Z|00035|ofproto_dpif_upcall|INFO|push_dp_ops 2159
state transition for ukey ufid:b82a17b0-a9bf-449f-b6a2-3634a7b811b5:
EVICTING -> EVICTED
2017-03-20T16:01:22.158Z|00036|ofproto_dpif_upcall|INFO|ukey_delete 1825
state transition for ukey ufid:b82a17b0-a9bf-449f-b6a2-3634a7b811b5:
EVICTED -> DELETED
2017-03-20T16:01:22.268Z|00037|ofproto_dpif|INFO|system@ovs-system:
Datapath supports recirculation
2017-03-20T16:01:22.268Z|00038|ofproto_dpif|INFO|system@ovs-system: MPLS
label stack length probed as 1
2017-03-20T16:01:22.268Z|00039|ofproto_dpif|INFO|system@ovs-system:
Datapath supports truncate action
2017-03-20T16:01:22.268Z|00040|ofproto_dpif|INFO|system@ovs-system:
Datapath supports unique flow ids
2017-03-20T16:01:22.269Z|00041|ofproto_dpif|INFO|system@ovs-system:
Datapath does not support clone action
2017-03-20T16:01:22.269Z|00042|ofproto_dpif|INFO|system@ovs-system: Max
sample nesting level probed as 3
2017-03-20T16:01:22.269Z|00043|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_state
2017-03-20T16:01:22.269Z|00044|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_zone
2017-03-20T16:01:22.269Z|00045|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_mark
2017-03-20T16:01:22.269Z|00046|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_label
2017-03-20T16:01:22.269Z|00047|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_state_nat
2017-03-20T16:01:22.269Z|00048|ofproto_dpif|INFO|system@ovs-system:
Datapath supports ct_orig_tuple
2017-03-20T16:01:22.280Z|00001|ofproto_dpif_upcall(handler26)|INFO|received
packet on unassociated datapath port 0
2017-03-20T16:01:22.290Z|00049|bridge|INFO|bridge brv-1: added interface
brv-1 on port 65534
2017-03-20T16:01:22.290Z|00050|bridge|INFO|bridge brv-1: using datapath
ID 00003ed7a2298140
2017-03-20T16:01:22.290Z|00051|connmgr|INFO|brv-1: added service
controller "punix:/var/run/openvswitch/brv-1.mgmt"
2017-03-20T16:01:22.325Z|00052|bridge|INFO|bridge brv-1: added interface
veth1 on port 1
2017-03-20T16:01:22.345Z|00053|bridge|INFO|bridge brv-1: added interface
veth2 on port 2
2017-03-20T16:01:22.352Z|00001|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: CREATED -> VISIBLE
2017-03-20T16:01:22.352Z|00002|ofproto_dpif_upcall(handler32)|INFO|put
count: 8
2017-03-20T16:01:22.352Z|00003|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.352Z|00004|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: CREATED -> VISIBLE
2017-03-20T16:01:22.352Z|00005|ofproto_dpif_upcall(handler32)|INFO|put
count: 9
2017-03-20T16:01:22.352Z|00006|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.352Z|00007|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: CREATED -> VISIBLE
2017-03-20T16:01:22.353Z|00008|ofproto_dpif_upcall(handler32)|INFO|put
count: 10
2017-03-20T16:01:22.353Z|00009|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.353Z|00010|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: CREATED -> VISIBLE
2017-03-20T16:01:22.353Z|00011|ofproto_dpif_upcall(handler32)|INFO|put
count: 11
2017-03-20T16:01:22.353Z|00012|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: VISIBLE -> OPERATIONAL
2017-03-20T16:01:22.358Z|00001|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.358Z|00002|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.358Z|00003|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.358Z|00004|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.608Z|00001|ofproto_dpif_upcall(revalidator35)|INFO|revalidate
2345 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.608Z|00002|ofproto_dpif_upcall(revalidator35)|INFO|reval_op_init
2245 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.608Z|00003|ofproto_dpif_upcall(revalidator35)|INFO|revalidate
2345 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.608Z|00004|ofproto_dpif_upcall(revalidator35)|INFO|reval_op_init
2245 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.608Z|00005|ofproto_dpif_upcall(revalidator35)|INFO|revalidate
2345 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.608Z|00006|ofproto_dpif_upcall(revalidator35)|INFO|reval_op_init
2245 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.608Z|00007|ofproto_dpif_upcall(revalidator35)|INFO|revalidate
2345 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:22.608Z|00008|ofproto_dpif_upcall(revalidator35)|INFO|reval_op_init
2245 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> EVICTING
2017-03-20T16:01:22.608Z|00009|ofproto_dpif_upcall(revalidator35)|INFO|push_dp_ops
2159 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: EVICTING -> EVICTED
2017-03-20T16:01:22.608Z|00010|ofproto_dpif_upcall(revalidator35)|INFO|push_dp_ops
2159 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: EVICTING -> EVICTED
2017-03-20T16:01:22.608Z|00011|ofproto_dpif_upcall(revalidator35)|INFO|push_dp_ops
2159 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: EVICTING -> EVICTED
2017-03-20T16:01:22.608Z|00012|ofproto_dpif_upcall(revalidator35)|INFO|push_dp_ops
2159 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: EVICTING -> EVICTED
2017-03-20T16:01:22.608Z|00001|ofproto_dpif_upcall(revalidator36)|INFO|ukey_delete
1825 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: EVICTED -> DELETED
2017-03-20T16:01:22.608Z|00002|ofproto_dpif_upcall(revalidator36)|INFO|ukey_delete
1825 state transition for ukey
ufid:2ac65ff6-17a1-446e-be0a-6cf852981ee8: EVICTED -> DELETED
2017-03-20T16:01:22.608Z|00001|ofproto_dpif_upcall(revalidator37)|INFO|ukey_delete
1825 state transition for ukey
ufid:0e45d246-f6c6-4b00-9e30-408643192b46: EVICTED -> DELETED
2017-03-20T16:01:22.609Z|00005|ofproto_dpif_upcall(revalidator33)|INFO|ukey_delete
1825 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: EVICTED -> DELETED
2017-03-20T16:01:22.951Z|00013|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:9009f598-48ca-4db1-aabc-8c6e5f25a648: CREATED -> VISIBLE
2017-03-20T16:01:22.951Z|00014|ofproto_dpif_upcall(handler32)|INFO|put
count: 12
2017-03-20T16:01:22.951Z|00015|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:9009f598-48ca-4db1-aabc-8c6e5f25a648: VISIBLE -> OPERATIONAL
2017-03-20T16:01:23.359Z|00006|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:9009f598-48ca-4db1-aabc-8c6e5f25a648: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:23.359Z|00007|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:9009f598-48ca-4db1-aabc-8c6e5f25a648: OPERATIONAL -> EVICTING
2017-03-20T16:01:23.359Z|00008|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:9009f598-48ca-4db1-aabc-8c6e5f25a648: EVICTING -> EVICTED
2017-03-20T16:01:23.360Z|00002|ofproto_dpif_upcall(revalidator37)|INFO|ukey_delete
1825 state transition for ukey
ufid:9009f598-48ca-4db1-aabc-8c6e5f25a648: EVICTED -> DELETED
2017-03-20T16:01:24.354Z|00016|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: CREATED -> VISIBLE
2017-03-20T16:01:24.354Z|00017|ofproto_dpif_upcall(handler32)|INFO|put
count: 13
2017-03-20T16:01:24.354Z|00018|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: VISIBLE -> OPERATIONAL
2017-03-20T16:01:24.354Z|00019|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: CREATED -> VISIBLE
2017-03-20T16:01:24.354Z|00020|ofproto_dpif_upcall(handler32)|INFO|put
count: 14
2017-03-20T16:01:24.354Z|00021|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: VISIBLE -> OPERATIONAL
2017-03-20T16:01:24.612Z|00009|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:24.612Z|00010|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> EVICTING
2017-03-20T16:01:24.612Z|00011|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:24.612Z|00012|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> EVICTING
2017-03-20T16:01:24.612Z|00013|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: EVICTING -> EVICTED
2017-03-20T16:01:24.612Z|00014|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: EVICTING -> EVICTED
2017-03-20T16:01:24.612Z|00003|ofproto_dpif_upcall(revalidator36)|INFO|ukey_delete
1825 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: EVICTED -> DELETED
2017-03-20T16:01:24.612Z|00015|ofproto_dpif_upcall(revalidator33)|INFO|ukey_delete
1825 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: EVICTED -> DELETED
2017-03-20T16:01:25.575Z|00022|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:c59ccbff-eae6-4bed-82a5-89766add0fa1: CREATED -> VISIBLE
2017-03-20T16:01:25.575Z|00023|ofproto_dpif_upcall(handler32)|INFO|put
count: 15
2017-03-20T16:01:25.575Z|00024|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:c59ccbff-eae6-4bed-82a5-89766add0fa1: VISIBLE -> OPERATIONAL
2017-03-20T16:01:25.864Z|00016|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:c59ccbff-eae6-4bed-82a5-89766add0fa1: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:25.864Z|00017|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:c59ccbff-eae6-4bed-82a5-89766add0fa1: OPERATIONAL -> EVICTING
2017-03-20T16:01:25.864Z|00018|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:c59ccbff-eae6-4bed-82a5-89766add0fa1: EVICTING -> EVICTED
2017-03-20T16:01:25.865Z|00004|ofproto_dpif_upcall(revalidator36)|INFO|ukey_delete
1825 state transition for ukey
ufid:c59ccbff-eae6-4bed-82a5-89766add0fa1: EVICTED -> DELETED
2017-03-20T16:01:26.407Z|00025|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: CREATED -> VISIBLE
2017-03-20T16:01:26.407Z|00026|ofproto_dpif_upcall(handler32)|INFO|put
count: 16
2017-03-20T16:01:26.407Z|00027|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: VISIBLE -> OPERATIONAL
2017-03-20T16:01:26.407Z|00028|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: CREATED -> VISIBLE
2017-03-20T16:01:26.407Z|00029|ofproto_dpif_upcall(handler32)|INFO|put
count: 17
2017-03-20T16:01:26.407Z|00030|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: VISIBLE -> OPERATIONAL
2017-03-20T16:01:26.471Z|00031|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:b1d1717c-9523-4916-83d2-7e7da8e6b7bd: CREATED -> VISIBLE
2017-03-20T16:01:26.471Z|00032|ofproto_dpif_upcall(handler32)|INFO|put
count: 18
2017-03-20T16:01:26.471Z|00033|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:b1d1717c-9523-4916-83d2-7e7da8e6b7bd: VISIBLE -> OPERATIONAL
2017-03-20T16:01:26.864Z|00019|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:26.864Z|00020|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: OPERATIONAL -> EVICTING
2017-03-20T16:01:26.864Z|00021|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:26.864Z|00022|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: OPERATIONAL -> EVICTING
2017-03-20T16:01:26.864Z|00023|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:b1d1717c-9523-4916-83d2-7e7da8e6b7bd: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:26.864Z|00024|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:b1d1717c-9523-4916-83d2-7e7da8e6b7bd: OPERATIONAL -> EVICTING
2017-03-20T16:01:26.864Z|00025|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: EVICTING -> EVICTED
2017-03-20T16:01:26.864Z|00026|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: EVICTING -> EVICTED
2017-03-20T16:01:26.864Z|00027|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:b1d1717c-9523-4916-83d2-7e7da8e6b7bd: EVICTING -> EVICTED
2017-03-20T16:01:26.864Z|00005|ofproto_dpif_upcall(revalidator36)|INFO|ukey_delete
1825 state transition for ukey
ufid:13818e08-c773-4716-b8c6-59d1e781770f: EVICTED -> DELETED
2017-03-20T16:01:26.865Z|00028|ofproto_dpif_upcall(revalidator33)|INFO|ukey_delete
1825 state transition for ukey
ufid:7871e4ec-7302-464a-80f5-efaec2e72cbe: EVICTED -> DELETED
2017-03-20T16:01:26.865Z|00006|ofproto_dpif_upcall(revalidator36)|INFO|ukey_delete
1825 state transition for ukey
ufid:b1d1717c-9523-4916-83d2-7e7da8e6b7bd: EVICTED -> DELETED
2017-03-20T16:01:27.495Z|00034|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:0e2a07df-cffd-46df-92aa-dd9f6baeae10: CREATED -> VISIBLE
2017-03-20T16:01:27.495Z|00035|ofproto_dpif_upcall(handler32)|INFO|put
count: 19
2017-03-20T16:01:27.495Z|00036|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:0e2a07df-cffd-46df-92aa-dd9f6baeae10: VISIBLE -> OPERATIONAL
2017-03-20T16:01:27.495Z|00037|ofproto_dpif_upcall(handler32)|INFO|ukey_install__
1679 state transition for ukey
ufid:e6cc74a9-bbdf-4d5d-a014-fec814f406c6: CREATED -> VISIBLE
2017-03-20T16:01:27.495Z|00038|ofproto_dpif_upcall(handler32)|INFO|put
count: 20
2017-03-20T16:01:27.495Z|00039|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1414 sleeping 1/5 sec, ukey state: 1
2017-03-20T16:01:27.864Z|00029|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:0e2a07df-cffd-46df-92aa-dd9f6baeae10: OPERATIONAL -> OPERATIONAL
2017-03-20T16:01:27.864Z|00030|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:0e2a07df-cffd-46df-92aa-dd9f6baeae10: OPERATIONAL -> EVICTING
2017-03-20T16:01:27.864Z|00031|ofproto_dpif_upcall(revalidator33)|INFO|revalidate
2345 state transition for ukey
ufid:e6cc74a9-bbdf-4d5d-a014-fec814f406c6: VISIBLE -> OPERATIONAL
2017-03-20T16:01:27.864Z|00032|ofproto_dpif_upcall(revalidator33)|INFO|reval_op_init
2245 state transition for ukey
ufid:e6cc74a9-bbdf-4d5d-a014-fec814f406c6: OPERATIONAL -> EVICTING
2017-03-20T16:01:27.864Z|00033|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:0e2a07df-cffd-46df-92aa-dd9f6baeae10: EVICTING -> EVICTED
2017-03-20T16:01:27.864Z|00034|ofproto_dpif_upcall(revalidator33)|INFO|push_dp_ops
2159 state transition for ukey
ufid:e6cc74a9-bbdf-4d5d-a014-fec814f406c6: EVICTING -> EVICTED
2017-03-20T16:01:27.864Z|00007|ofproto_dpif_upcall(revalidator36)|INFO|sleeping
2017-03-20T16:01:27.864Z|00013|ofproto_dpif_upcall(revalidator35)|INFO|sleeping
2017-03-20T16:01:28.495Z|00040|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1414 sleeping 2/5 sec, ukey state: 4
2017-03-20T16:01:29.496Z|00041|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1414 sleeping 3/5 sec, ukey state: 4
2017-03-20T16:01:30.401Z|00054|memory|INFO|69400 kB peak resident set
size after 10.1 seconds
2017-03-20T16:01:30.401Z|00055|memory|INFO|handlers:1 ports:3
revalidators:5 rules:5 udpif keys:2
2017-03-20T16:01:30.496Z|00042|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1414 sleeping 4/5 sec, ukey state: 4
2017-03-20T16:01:31.496Z|00043|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1414 sleeping 5/5 sec, ukey state: 4
2017-03-20T16:01:32.496Z|00044|ofproto_dpif_upcall(handler32)|INFO|handle_upcalls
1423 state transition for ukey
ufid:e6cc74a9-bbdf-4d5d-a014-fec814f406c6: EVICTED -> OPERATIONAL
2017-03-20T16:01:32.496Z|00045|util(handler32)|EMER|ofproto/ofproto-dpif-upcall.c:1699:
assertion dst >= ukey->state failed in transition_ukey()
##################END OF LOG ################
From df02c4f769566ce6a8ebb8f228c9f3262c618395 Mon Sep 17 00:00:00 2001
From: Paul Blakey <pa...@mellanox.com>
Date: Sun, 19 Mar 2017 17:00:30 +0200
Subject: [PATCH] test
Change-Id: Iac752eb5fab3ff49da30a35bab3bee12673e1e28
---
ofproto/ofproto-dpif-upcall.c | 55
+++++++++++++++++++++++++++++++++----------
1 file changed, 43 insertions(+), 12 deletions(-)
diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
index 660383f..3291219 100644
--- a/ofproto/ofproto-dpif-upcall.c
+++ b/ofproto/ofproto-dpif-upcall.c
@@ -45,6 +45,8 @@
#define UPCALL_MAX_BATCH 64
#define REVALIDATE_MAX_BATCH 50
+int global_temp = 0;
+
VLOG_DEFINE_THIS_MODULE(ofproto_dpif_upcall);
COVERAGE_DEFINE(dumped_duplicate_flow);
@@ -350,7 +352,7 @@ static void ukey_get_actions(struct udpif_key *,
const struct nlattr **actions,
static bool ukey_install__(struct udpif *, struct udpif_key *ukey)
OVS_TRY_LOCK(true, ukey->mutex);
static bool ukey_install(struct udpif *udpif, struct udpif_key *ukey);
-static void transition_ukey(struct udpif_key *ukey, enum ukey_state dst)
+static void transition_ukey(const char *func, int line, struct
udpif_key *ukey, enum ukey_state dst)
OVS_REQUIRES(ukey->mutex);
static struct udpif_key *ukey_lookup(struct udpif *udpif,
const ovs_u128 *ufid,
@@ -1399,15 +1401,30 @@ handle_upcalls(struct udpif *udpif, struct
upcall *upcalls,
dpif_operate(udpif->dpif, opsp, n_opsp);
for (i = 0; i < n_ops; i++) {
struct udpif_key *ukey = ops[i].ukey;
+ static int count = 0;
+ const int sleep_time = 5;
+ const int sleep_every_n_flows = 20;
if (ukey) {
+ count++;
+ VLOG_INFO("put count: %d", count);
+ if ((count % sleep_every_n_flows) == 0) {
+ global_temp = 1;
+ for (int z = 0; z < sleep_time; z++) {
+ VLOG_INFO("%s %d sleeping %d/%d sec, ukey state:
%d", __func__, __LINE__, z+1, sleep_time, ukey->state);
+ xsleep(1);
+ }
+ }
+
ovs_mutex_lock(&ukey->mutex);
if (ops[i].dop.error) {
- transition_ukey(ukey, UKEY_EVICTED);
+ transition_ukey(__func__, __LINE__, ukey, UKEY_EVICTED);
} else {
- transition_ukey(ukey, UKEY_OPERATIONAL);
+ transition_ukey(__func__, __LINE__, ukey,
UKEY_OPERATIONAL);
}
ovs_mutex_unlock(&ukey->mutex);
+
+ global_temp = 0;
}
}
}
@@ -1605,8 +1622,8 @@ try_ukey_replace(struct umap *umap, struct
udpif_key *old_ukey,
cmap_replace(&umap->cmap, &old_ukey->cmap_node,
&new_ukey->cmap_node, new_ukey->hash);
ovsrcu_postpone(ukey_delete__, old_ukey);
- transition_ukey(old_ukey, UKEY_DELETED);
- transition_ukey(new_ukey, UKEY_VISIBLE);
+ transition_ukey(__func__, __LINE__, old_ukey, UKEY_DELETED);
+ transition_ukey(__func__, __LINE__, new_ukey, UKEY_VISIBLE);
replaced = true;
}
ovs_mutex_unlock(&old_ukey->mutex);
@@ -1659,7 +1676,7 @@ ukey_install__(struct udpif *udpif, struct
udpif_key *new_ukey)
} else {
ovs_mutex_lock(&new_ukey->mutex);
cmap_insert(&umap->cmap, &new_ukey->cmap_node, new_ukey->hash);
- transition_ukey(new_ukey, UKEY_VISIBLE);
+ transition_ukey(__func__, __LINE__, new_ukey, UKEY_VISIBLE);
locked = true;
}
ovs_mutex_unlock(&umap->mutex);
@@ -1667,10 +1684,18 @@ ukey_install__(struct udpif *udpif, struct
udpif_key *new_ukey)
return locked;
}
+char *state_to_str[] = { "CREATED", "VISIBLE", "OPERATIONAL",
"EVICTING", "EVICTED", "DELETED" };
+
static void
-transition_ukey(struct udpif_key *ukey, enum ukey_state dst)
+transition_ukey(const char *func, int line, struct udpif_key *ukey,
enum ukey_state dst)
OVS_REQUIRES(ukey->mutex)
{
+ struct ds ds2 = DS_EMPTY_INITIALIZER;
+
+ odp_format_ufid(&ukey->ufid, &ds2);
+ VLOG_INFO("%s %d state transition for ukey %s: %s -> %s", func,
line, ds_cstr(&ds2), state_to_str[ukey->state], state_to_str[dst]);
+ ds_destroy(&ds2);
+
ovs_assert(dst >= ukey->state);
if (ukey->state == dst && dst == UKEY_OPERATIONAL) {
return;
@@ -1797,7 +1822,7 @@ ukey_delete(struct umap *umap, struct udpif_key *ukey)
if (ukey->state < UKEY_DELETED) {
cmap_remove(&umap->cmap, &ukey->cmap_node, ukey->hash);
ovsrcu_postpone(ukey_delete__, ukey);
- transition_ukey(ukey, UKEY_DELETED);
+ transition_ukey(__func__, __LINE__, ukey, UKEY_DELETED);
}
ovs_mutex_unlock(&ukey->mutex);
}
@@ -2131,7 +2156,7 @@ push_dp_ops(struct udpif *udpif, struct ukey_op
*ops, size_t n_ops)
if (op->ukey) {
ovs_mutex_lock(&op->ukey->mutex);
- transition_ukey(op->ukey, UKEY_EVICTED);
+ transition_ukey(__func__, __LINE__, op->ukey, UKEY_EVICTED);
push->used = MAX(stats->used, op->ukey->stats.used);
push->tcp_flags = stats->tcp_flags |
op->ukey->stats.tcp_flags;
push->n_packets = stats->n_packets -
op->ukey->stats.n_packets;
@@ -2217,7 +2242,7 @@ reval_op_init(struct ukey_op *op, enum
reval_result result,
{
if (result == UKEY_DELETE) {
delete_op_init(udpif, op, ukey);
- transition_ukey(ukey, UKEY_EVICTING);
+ transition_ukey(__func__, __LINE__, ukey, UKEY_EVICTING);
} else if (result == UKEY_MODIFY) {
/* Store the new recircs. */
recirc_refs_swap(&ukey->recircs, recircs);
@@ -2317,7 +2342,7 @@ revalidate(struct revalidator *revalidator)
}
/* The flow is now confirmed to be in the datapath. */
- transition_ukey(ukey, UKEY_OPERATIONAL);
+ transition_ukey(__func__, __LINE__, ukey, UKEY_OPERATIONAL);
if (!used) {
used = ukey->created;
@@ -2417,6 +2442,12 @@ revalidator_sweep__(struct revalidator
*revalidator, bool purge)
ovs_mutex_unlock(&ukey->mutex);
if (ukey_state == UKEY_EVICTED) {
+
+ while (global_temp) {
+ VLOG_INFO("sleeping\n");
+ xsleep(5);
+ }
+
/* The common flow deletion case involves deletion of
the flow
* during the dump phase and ukey deletion here. */
ovs_mutex_lock(&umap->mutex);
@@ -2471,7 +2502,7 @@ dp_purge_cb(void *aux, unsigned pmd_id)
CMAP_FOR_EACH(ukey, cmap_node, &umap->cmap) {
if (ukey->pmd_id == pmd_id) {
delete_op_init(udpif, &ops[n_ops++], ukey);
- transition_ukey(ukey, UKEY_EVICTING);
+ transition_ukey(__func__, __LINE__, ukey, UKEY_EVICTING);
if (n_ops == REVALIDATE_MAX_BATCH) {
push_ukey_ops(udpif, umap, ops, n_ops);
--
1.8.4.3
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev