• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

noironetworks / opflex
79%
master: 68%

Build:
Build:
LAST BUILD BRANCH: coveralls
DEFAULT BRANCH: master
Repo Added 02 Jun 2016 10:15PM UTC
Files 285
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH jefferson-svc-stats-thread
branch: jefferson-svc-stats-thread
CHANGE BRANCH
x
Reset
  • jefferson-svc-stats-thread
  • 5.1.1.0
  • 5.1.1.1
  • 5.1.3.0
  • 5.1.3.1
  • 5.1.3.2
  • 5.1.3.3
  • 5.1.3.4
  • 5.1.3.5
  • 5.2.1.0
  • 5.2.1.1
  • 5.2.1.2
  • 5.2.3.0
  • 5.2.3.1
  • 5.2.3.2
  • 5.2.3.3
  • 5.2.3.4
  • 5.2.3.5
  • 5.2.3.6
  • 5.2.3.7
  • Revert-Revert-openshift-hack-jefferson
  • access-allow-untagged
  • add-cwrapper-uts
  • add-dir-order-to-sg
  • add-extepfile-test
  • add-lgtm-rules
  • add-missing-stop
  • add_pipeline_script
  • addcodeqlfilter
  • adjust_drop_counters
  • anm-opflex-rpm
  • anm-patch
  • apic
  • arm64
  • asan-gbp-issues
  • asyncjson
  • asyncjson-kmr2
  • asyncjson_kmr2
  • atomic-1
  • backport-fixes
  • backport-kmr2
  • backport-krm2
  • backport_drop_prune_bug
  • backport_droplog_part1
  • backport_droplog_prune
  • backport_droplog_pruning
  • backport_egress_dns
  • backport_prune_fix
  • backport_tsan_fix
  • bbva
  • bhav-opflex-rpm
  • bpf
  • build-opt
  • bump-release
  • bump-vers-k+
  • bump-version
  • centos
  • centos-master
  • certs
  • cfd-ut
  • change-retry-timeout
  • cicd-lmr-update
  • cleanup-dotfiles
  • cleanup-includes
  • cleanup-lgtm-complaints
  • cleanup-qos
  • cleanup_droplogs
  • clsr
  • clsr2
  • clsr3
  • clsr4
  • codacity
  • codacity-8-14
  • codacity-8-17
  • codacity-cleanup
  • codacity-usleep
  • codacy-warnings
  • collapse-debug-levels
  • common-getuuid
  • complaint-cleanup
  • con_deny
  • config_filter_droplog
  • configurable-timeouts
  • configured-peer-issue
  • const-operator
  • cov-1
  • cov-2
  • cov-8-21
  • cov-exc
  • cov-fixes
  • cov-issue
  • cov_0513
  • coveralls
  • coveralls-logs
  • coveralls-reporting-fixes
  • coverity
  • coverity-8-14
  • coverity-fixes-uninit
  • coverity_0529
  • coverity_0531
  • coverity_0601
  • coverity_0602
  • coverity_fix_01
  • cpp-min-version-change
  • cpp14-bump
  • csr-flows
  • csr-integration
  • csr-service
  • ct-rel
  • deb-build-problems
  • deb-rules
  • debian_warnings-2
  • debian_warnings-3
  • deny_rule_2
  • deny_rules
  • devtoolset-8
  • disable-scheduled-codeql-scan
  • disable-untagged-dup
  • dns_bkup_restore
  • dns_fixes
  • dns_records
  • dns_uts
  • drop-log-redirect-args
  • drop_deny
  • dropflow-ut
  • droplog-uts
  • droplog_part1
  • droplog_test
  • droplogcfg
  • droplogger_thread
  • dual-stack
  • dup-os-on-os
  • egress_dns
  • enable-prometheus
  • enable-sanitizers
  • encap
  • enhance-epfile-tests
  • epcounter
  • epcounter-tests
  • epdeclare
  • epfaults_UT
  • erspan-id
  • erspan-update-port
  • erspan-updates
  • event_array_fix
  • exc_err_log
  • except-1
  • fault_manager
  • faultcode
  • faults-rpm-deb
  • faults_changes
  • file_dump_unresolved
  • fix-60min-outage
  • fix-certs
  • fix-cov-issue
  • fix-deb-rpm
  • fix-liopflex-uts-ubuntu2304
  • fix-lmr
  • fix-pre-handshake-timeouts
  • fix-ssl
  • fix-ssl-version
  • fix-travis-badge
  • fix-unavail-resolves
  • fix_acc_br_pktin
  • fix_commit_message
  • fix_commit_message_kmr2
  • fix_droplog_access_flow
  • fix_dropprunecore
  • fix_lgtm
  • fix_tsan
  • fix_uninit_tests
  • fixes
  • flag_sync
  • flaky-tests-6-16
  • focal-disable-deb-test
  • focal-travis
  • fsdroplog-ut
  • gautvenk-patch-1
  • gbp_inspect-crash
  • gbpinspect
  • gbpserver-coverity
  • genie-cleanup
  • genie-codacity
  • genie-gen-c++11
  • genie-relation-uris
  • genie-remove-reverse-relationship
  • githash-incorrect
  • gprof
  • grafana
  • grafana-2
  • grafana-6-23
  • grafana-images
  • grafana-uc
  • grpc-cache
  • grpc-coverity
  • grpc-travis
  • grpc-v1.31.0
  • high_freq_timers
  • high_freq_timers-lmr-6.0.4
  • high_freq_timers-mmr-6.1.1
  • incorrect_arg_droplog
  • increase-ovsdb-buffer-size
  • indus-cfd
  • inspect-timeout
  • ipfix-domid
  • ipfix-fields
  • ipfix-output-only
  • jammy-disabledgprof
  • jammy-travis-wait
  • jefferson
  • jefferson-invalid-read
  • jefferson-lb-loopback
  • jefferson-logs
  • jefferson-ovsdb
  • jefferson-peer-list-reset
  • jsonrcp-errormsg
  • jsonrpc-monitor
  • jsonrpc-monitor-support
  • judith
  • judith-buffer-issue
  • judith-buffer-size-bump
  • judith-nat-prio
  • judith-peer-reset
  • judith-remote-ip
  • kmr2
  • kmr2-5.2.7
  • kmr2-bbva
  • kmr2-change-retry-timeout
  • kmr2-restart
  • kmr2-revert
  • kwai
  • kwai-keepalive
  • kwai-nat-prio
  • kwai-prom-0.12.1
  • kwai-remote-ip
  • kwai-session-aff
  • l2c
  • lgtm-1
  • lgtm-2
  • lgtm-cleanup
  • lgtm-coverty-1
  • lgtm-fixes
  • lgtm-grpc
  • lgtm-grpc-build
  • lgtm-lo
  • lgtm-os
  • lgtm-prom
  • lgtm-revert
  • lgtm_2
  • lgtm_build
  • lgtm_fixes
  • lmr
  • lmr-6.0.4
  • lmr-inspect
  • lmr-stoul
  • lmr-ubi8
  • local-hpp-counters
  • local-hpp-tests
  • lock-cleanup-1
  • logaction
  • loopback-lb
  • mac-vector-leak
  • mac_mask
  • master
  • mcast-flaky
  • minor_br_access_fix
  • mmr-6.1.1
  • mock-server-1
  • modb-count-agent
  • more-cov-issues
  • more-uts
  • more_default_rules
  • move-to-ovs-renderer
  • mtufault
  • multi-travis
  • multiple-switches
  • nat
  • nat-fixes
  • nat-prio
  • of-timeout
  • ofpeer
  • ofstats-del
  • openssl
  • opflex-fixes
  • opflex-hpp-optimization
  • opflex-rpm
  • opflex-svc-stats-thread
  • opflex_denyrules
  • opflex_epfaults
  • os-deadlock-8-10
  • os-gbp-1
  • os-grafana
  • os-refactor
  • os-refactor-2
  • os-stats-8-20
  • os-tsan-1
  • os-tsan-7-23
  • os-tsan-8-6
  • ospm-7-2
  • overflow-on-read
  • overlay_tunnel_adv
  • ovs-lib-includes
  • ovsdb-async
  • ovsdb-connect
  • ovsdb-id
  • ovsdb-rework
  • ovsdb-test-update
  • ovsdb-update
  • ovsdb-update-mock-fix
  • ovsdb-ut
  • parse_fix
  • parse_srv
  • peer-tsan
  • permit_logging
  • policydrop
  • port-commits
  • port-tunneladv-change
  • prefer-range-for
  • prom-conditionals
  • prom-define-remove
  • prom-deps
  • prom-v1.0.1
  • prom-v1.0.1-kmr2
  • prom_unit_test
  • prometheus-cpp
  • prometheus-doc
  • prr-fixes
  • prune_bug
  • pruning_core_fix
  • pthread-6-8
  • qos-coverage
  • recursive_resolve
  • reduce-logs
  • reduce-noisy-logs
  • reduce-travis-usage
  • remote-ep
  • remoteep-tests
  • remove-asssert
  • remove-clone
  • remove-cpp-version-checks
  • remove-debug5
  • remove-epg-erspan
  • remove-oftypes
  • remove-simstats
  • remove-snat-unset
  • remove-unused-method
  • remove-vlog
  • remove_travis_tags
  • removelog
  • renderer-stop-fix
  • reset-wait
  • restart
  • revert-258-dscp_2
  • revert-297-jefferson-svc-stats-thread
  • revert-Revert-oshift-dup
  • revert-agent-c++14
  • rework-boost-placeholder-usage
  • rework-jsonrpc-code
  • rhel8-rpm
  • rhel8rpm
  • rpm-deb-8-23
  • rpm_build_fix
  • rpm_fix
  • rpmbuild
  • runtime-6-10
  • serialize-unresolved
  • server-prom
  • server-readme
  • service-UT
  • service-secgrp-bypass
  • session-aff
  • set-erspan-dir
  • sm-7-13
  • snat
  • snat-bounce
  • snat-fixes
  • snat-uts
  • snat_test_coverage
  • span-bridge-fix
  • span-coverage
  • span-create-delete
  • span-ut
  • span-uts
  • srv_flow_changes
  • ssu-wipe
  • startup
  • startup-enable
  • std-to-string
  • sumit-kmr2-travis-builds
  • svc-arp
  • svc-bypass-secgrp-jefferson
  • svc-dup
  • svc-loopback
  • svc-stale
  • svc-stats-disable
  • svc-stats-flow-disable
  • svc_flood
  • sys-stats-1
  • test-dscp
  • test-en
  • test-old-master
  • test-updatemos
  • testing
  • time_gprof
  • timer-mutex
  • timer-protect
  • totals-1
  • travis-focal
  • travis-log
  • travis-logs
  • travis-rc
  • travis_build_fix
  • triangular-deadlock
  • tsan-afm
  • tsan-check
  • tsan-clang-cleanup
  • tsan-cleanup
  • tsan-epcounter
  • tsan-erspan
  • tsan-fixes
  • tsan-issues
  • tsan-ubuntu2010
  • tsan_cov_fix
  • tsanissues-jsonrpc
  • tunnel-mtx
  • tupledata-rename
  • ubi
  • ubi9rpmbuild
  • ubsan
  • ubsan-disable
  • ubsan-enable
  • ubuntu-21.04-issue
  • ubuntu2010-failure
  • ubuntu23.10
  • uc-6-29
  • unicast_garp
  • unrel_count
  • unrel_pol2
  • unrel_pol3
  • unresolved_relations
  • unresolved_relations_2
  • unresolved_rels
  • update-codeql-config
  • update-docs
  • upgrade-prom-cpp
  • vmotion-reset-all-peers

pending completion
1644

push

travis-ci-com

Gautam Venkataramanan
Changes to move svc stats to a low prio thread

- Created a new thread to handle svc stat flows CRUD. The thread works on a new asio io_service object to handle new events from taskqueue.
- Stats collection done via ServiceStatsManager also uses the new asio io_service.
- All linux threads by default have SCHED_OTHER scheduling policy. This has a static priority of 0. Other sched policies like SCHED_FIFO and SCHED_RR allow users to control thread priority varying from values 1 to 99. Due to this FIFO/RR will preempt SCHED_OTHER threads. Either we move all threads to FIFO/RR and set priorities or somehow influence priority within SCHED_OTHER policy. Luckily there is a "nice" value than is configurable at a thread level per process which can control the total time allocated per thread. The new thread has highest "nice" value, which makes it consume least CPU time.
- Call programServiceSnatDnatFlows() appropriately per service, once all the stats flows are programmed. This is to update cookie values in SNAT/DNAT flows for stats collection. Note: This used to be called twice for every service during EP update. Reduced this to just one call. Also, since service flows get programmed via agent thread and since stats flows are created via different thread, this call needs to be called separately for service updates as well.
- Flows get programmed by both agent thread and new thread. Addressed tsan issues with a mutex in switch manager.
- Changed a few booleans to atomic bools.
- enabled svc stats by default
- make check and mock agent work fine.
- reproduced the issue faced by telenor on fab1 with old opflex-agent image. 177 services + 110 pods per node took 2 hours to get applied. 40% CPU consumed by opflex-agent consistently. A new service-pod when spawned, took around 2 mins 20 seconds to be responsive. With the fix, CPU consumption during flow creation is around 25%. New service-pod is accessible instantaneously. Bootup with new image was also v quick.

S... (continued)

22170 of 27941 relevant lines covered (79.35%)

3290.11 hits per line

Relevant lines Covered
Build:
Build:
27941 RELEVANT LINES 22170 COVERED LINES
3290.11 HITS PER LINE
Source Files on jefferson-svc-stats-thread
  • Tree
  • List 271
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
1644 jefferson-svc-stats-thread Changes to move svc stats to a low prio thread - Created a new thread to handle svc stat flows CRUD. The thread works on a new asio io_service object to handle new events from taskqueue. - Stats collection done via ServiceStatsManager also uses t... push 07 Nov 2020 12:55AM UTC Gautam Venkataramanan travis-ci-com pending completion  
See All Builds (2781)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc