Attention is currently required from: kirr.
kirr uploaded patch set #2 to this change.
The following approvals got outdated and were removed: Verified-1 by Jenkins Builder
trx_toolkit/_fake_trx: Optimize IO loop fd polling
As can be seen from http://navytux.spb.ru/~kirr/osmo/fake_trx/pyx-base.html (Runner_5loop)
the system spends more in py select wrapper compared to select system
call itself. And also the wrapper releases/reacquires gil, which,
as Iaa675c95059ec8ccfad667f69984d5a7f608c249 (trx_toolkit/clck_gen: Don't
use threads because Python GIL is latency killer) shows, can have
dramatic effect. It is also known that select inside the kernel is doing
useless work at every call by registering/deregistering each fd every
time.
-> Avoid all that overhead by switching to epoll and doing epoll_wait
ourselves and without releasing/reacquiring the gil. We can do that
because fake_trx is single-threaded and because clck_gen._timerfd is
setup to do ~ 200 Hz regular wakeup.
Change-Id: I748810871601178cc97bcdaba41419949078c29d
---
M src/target/trx_toolkit/_fake_trx.pyx
1 file changed, 111 insertions(+), 18 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/64/40064/2
To view, visit change 40064. To unsubscribe, or for help writing mail filters, visit settings.