forked from M-Labs/artiq
1
0
Fork 0
artiq/artiq
whitequark feed91d8b2 runtime: buffer RPC send packets.
This brings mean RPC time from ~45ms to ~2ms.

The cause of the slowness without buffering is, primarily, that lwip
is severely pessimized by small writes, whether with Nagle on or off.
(In fact, disabling Nagle makes it function *better* on many small
writes, which begs the question of what's the point of having Nagle
there in the first place.) In practical terms, the slowness appears
only when writing a 4-byte buffer (the synchronization segment);
writing buffers of other sizes does not trigger the problem.

This all is extremely confusing and the fix is partly palliative,
but since it seems to work reliably and we're migrating off lwip
I think it is unwise to spend any more time debugging this.
2016-11-12 23:06:33 +00:00
..
applets applets: simplify command lines 2016-09-04 23:32:09 +08:00
browser master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
compiler llvm_ir_generator: use !{→unconditionally.}invariant.load metadata. 2016-11-12 04:08:58 +00:00
coredevice artiq_compile: actually disable attribute writeback. 2016-11-10 01:04:36 +00:00
dashboard dashboard: pack moninj widgets (#603) 2016-11-04 16:20:46 +08:00
devices pdq2: sync with pdq2 2016-10-18 09:43:46 +02:00
examples master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
frontend artiq_devtool: abort if build failed. 2016-11-12 20:26:32 +00:00
gateware add has_dds, use config flags 2016-11-08 23:33:03 +08:00
gui gui: use bare QSpinBox for integer NumberEntries. Closes #558 2016-09-14 10:53:24 +08:00
language make set_dataset and mutate_dataset async RPCs 2016-11-01 11:11:41 +08:00
master master/worker_db: set default value for archive 2016-10-19 20:12:16 +08:00
protocols pc_rpc: raise AttributeError immediately for nonexistent RPC methods. Closes #534 2016-09-14 11:22:07 +08:00
runtime Revert "runtime: remove some redundant libm functions copied inline." 2016-11-08 11:54:17 +00:00
runtime.rs runtime: buffer RPC send packets. 2016-11-12 23:06:33 +00:00
sim sim: align API closer to non-sim 2016-02-23 21:01:03 +01:00
test runtime: buffer RPC send packets. 2016-11-12 23:06:33 +00:00
wavesynth wavesynth: silence is a channel property (closes #348) 2016-04-07 21:51:29 +08:00
__init__.py artiq_dir: move out of tools to unlink dependencies 2016-01-25 18:15:50 -07:00
_version.py versioneer: remote tag_prefix = v 2016-01-18 21:28:09 -07:00
appdirs.py add appdirs 2016-07-18 16:40:18 +02:00
experiment.py artiq.experiment: merge language and coredevice namespaces 2016-01-25 17:24:00 -07:00
monkey_patches.py monkey-patch Python 3.5.2 to disable broken asyncio.base_events._ipaddr_info optimization (#506) 2016-07-13 11:35:16 +08:00
tools.py tools: cleanup artiq_version 2016-08-04 19:42:13 +08:00