Commit Graph

183 Commits

Author SHA1 Message Date
770ce2658f test: adapt SequenceError test to SED 2017-09-16 16:28:57 +08:00
mntng
ea135f9d06 add unittest for artiq_compile and ELF artiq_run (#455) 2017-08-15 08:13:11 -06:00
cf1de4b26a test_spi: convert to Unix EOL 2017-08-04 11:48:20 +08:00
mntng
692dc0803b test: add test for SPI core using SD card 2017-07-28 19:10:44 +08:00
whitequark
69fa9b38e0 test: actually run test_embedding.AsyncTest. 2017-06-25 05:28:32 +00:00
whitequark
31b52ff1b3 coredevice: do not desync kernel TCP stream on RPCReturnValueError.
And propagate the error upwards instead of trying to squeeze it
through the core device in futility.
2017-06-25 04:47:32 +00:00
6262969d46 test: relax test_dma_record_time 2017-06-21 18:33:58 +08:00
09d198c7a1 test: add test for exception on non-existent I2C bus 2017-06-19 15:32:09 +08:00
whitequark
284382b1f5 compiler: add support for bytearray values in RPC (#714). 2017-06-09 07:15:25 +00:00
whitequark
66a683f583 compiler: add support for bytes values in RPC (#714). 2017-06-09 07:10:48 +00:00
5fc953119e fix usage of CommMgmt 2017-05-22 17:32:11 +08:00
5ccca74a3f fold comm device into core device 2017-05-22 15:45:45 +08:00
whitequark
ed2b10c5aa compiler: in codegen for delay(), round fp instead of truncating.
Consider delay(8*us). It results in the following computation...
  >>> 8*1e-06/1e-09
  7999.999999999999
with the result promptly getting truncated to 7999.

Fixes #706.
2017-04-21 17:36:44 +00:00
whitequark
fd994ceef3 DMA: various fixes to bring tests in line. 2017-04-20 20:05:03 +00:00
e8f7f8ef9c DMA: speed up playback
Time reduced from 1.53µs to 1.37µs.
2017-04-19 10:59:12 +08:00
whitequark
41c4de4556 DMA: add API for a much faster replay using handles. 2017-04-18 08:20:12 +00:00
whitequark
9dfe9c1248 DMA: improve recording performance.
This commit moves DMA serialization code to the kernel CPU
(to cope with the existence of rtio_output_wide) and batches
the resulting sequences. This results in less data being transferred
between kernel and comms CPUs (24 octets with one pointer before,
18 octets with no pointers now, for the common case of rtio_output),
but most importantly reduces cache flushes, which now happen
once per 64k octets.

On average, it now takes about 15us to record a single RTIO event
in a DMA trace.

Fixes #712.
2017-04-15 07:29:52 +00:00
f314f8b8f5 relax test_rpc_timing 2017-04-08 22:45:08 +08:00
whitequark
14ae1cc100 runtime: advance now on DMA replay.
Fixes #700.
2017-04-05 18:34:36 +00:00
whitequark
56918fb375 test: re-enable DMA tests as the feature is now stable. 2017-04-05 16:43:22 +00:00
whitequark
8b98e1ea6d test: relax test_rpc_timing: rpc_time_mean <2ms → <3ms. 2017-03-31 20:41:47 +00:00
whitequark
245e186347 Commit missing parts of 948ed6fb. 2017-03-29 18:34:08 +00:00
2e2d0be201 skip crashing DMA tests on buildbot 2017-03-29 09:36:51 +08:00
whitequark
7eb368fd5d test: add DMA test that checks the analyzer trace. 2017-03-28 14:22:20 +00:00
6caab4d10b test: verify that RTIO collisions appear in log 2017-03-27 18:08:03 +08:00
70343b244d test: add more RTIO slack in test_clock_generator_loopback 2017-03-27 17:26:23 +08:00
58ee09dbdc test: re-enable test_clock_generator_loopback
It passes now for some reason.
2017-03-27 17:26:02 +08:00
b74d6fb9ba make collision and busy asynchronous errors, and simplify CPU/gateware handshake for output errors and reads 2017-03-27 16:32:23 +08:00
1ee3f96482 test: self.break_realtime → self.core.break_realtime 2017-03-27 16:31:11 +08:00
whitequark
ac9e8b8568 test: avoid underflow in DMA replay test. 2017-03-17 12:09:02 +00:00
whitequark
dbea679e96 Revert "test: relax test_rpc_timing on Windows."
This reverts commit e9cf451c0b.
2017-03-17 11:34:45 +00:00
whitequark
e9cf451c0b test: relax test_rpc_timing on Windows. 2017-03-17 11:20:16 +00:00
whitequark
7dc7dcda2c test: relax test_pulse_rate_dds to only catch catastrophic slowdown. 2017-03-17 11:17:47 +00:00
f121ca20fe test: relax test_pulse_rate_dds 2017-03-03 18:10:27 +08:00
whitequark
a4ece19614 Implement DMA playback. 2017-02-28 21:28:40 +00:00
9cfa3e704b fix test_analyzer 2017-02-27 19:19:46 +08:00
3b386aa590 fix test_moninj import 2017-02-27 18:44:32 +08:00
7d6ebabc1b reorganize core device communication code 2017-02-27 18:37:30 +08:00
d16073fcaa test: add moninj unittest 2017-02-27 15:56:58 +08:00
whitequark
9c93c760fc firmware: do not use PIC in Rust code.
This fixes test_pulse_rate and test_pulse_rate_dds by making
rtio_output slightly faster.
2017-02-02 12:22:55 +00:00
whitequark
609fd3d902 test: skip test_clock_generator_loopback as well.
Both tests pass locally, which means there's some conda screwup
that prevents them from working on CI.
2017-01-27 11:47:26 +00:00
whitequark
c529cefc89 conda: bump llvmlite-artiq dependency. 2017-01-27 11:14:53 +00:00
whitequark
477664f931 test: temporarily skip pulse_rate_dds. 2017-01-26 20:53:30 +00:00
whitequark
0b67396630 test: convert test_pulse_rate_dds to use mu.
Before this commit, this test was actually measuring soft-FP
performance.
2017-01-25 11:26:30 +00:00
whitequark
b5a684830d compiler: fix parsing of TList annotations (fixes #632). 2016-12-05 03:18:56 +00:00
whitequark
3485c83429 Fix tests. 2016-11-21 06:40:47 +00:00
whitequark
009d396740 Move mu_to_seconds, seconds_to_mu to Core. 2016-11-21 05:37:30 +00:00
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
whitequark
6fcd57a41a runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
whitequark
6b2789e3db test: add more RPC tests. 2016-10-06 12:54:08 +00:00
1cb8f642b4 test: level-based TTL APIs (#218) 2016-09-07 17:37:49 +08:00
whitequark
5a2306ae5a compiler.embedding: implement type annotations for function arguments.
Fixes #318.
2016-08-08 03:28:25 +00:00
whitequark
b6c12f2f56 test: relax RPCTiming rpc_time_stddev from 1ms to 2ms.
Even when given exclusive access to our buildserver it still gives
false positives with 1ms.
2016-07-14 10:47:51 +00:00
whitequark
653eeb476f runtime: fix serialization of object lists.
Fixes #500.
2016-07-07 12:40:50 +00:00
whitequark
d90fd7dc00 compiler: implement numpy.full (#424). 2016-07-07 06:33:38 +00:00
whitequark
7a671fb2fd embedding: treat numpy.{int32,int64,array} specially (#424).
Also, remove them from prelude to not pollute the namespace.
2016-07-07 06:33:38 +00:00
whitequark
933ea53c77 compiler: add basic numpy array support (#424). 2016-07-06 09:51:57 +00:00
whitequark
906db876a6 language: replace coredevice int with numpy.{int32,int64}.
Fixes #453.
2016-07-06 04:44:21 +00:00
43681b37ec test/rtio: relax constraints 2016-06-29 11:38:36 +08:00
e51928ee97 test/rtio: adapt to new handover behavior 2016-06-29 10:38:37 +08:00
c8dc6ca07c inter-experiment smooth handover 2016-06-29 02:37:50 +08:00
917cc056f4 test: add test for seamless handover on exception termination 2016-06-19 19:15:10 +08:00
whitequark
e47538ca33 analyzer: explicitly delimit messages (with \x1D).
Fixes #461.
2016-06-07 11:26:49 +00:00
136dc7039e language/environment: update kernel_invariants in setattr_argument and setattr_device 2016-05-03 16:27:42 +08:00
whitequark
a88425b66b compiler: allow RPCing builtin functions.
Fixes #366.
2016-04-26 01:31:17 +00:00
whitequark
1464bae6b7 compiler: don't typecheck RPCs except for return type.
Fixes #260.
2016-04-26 01:12:36 +00:00
caf774579a environment: refactor 2016-04-16 19:31:07 +08:00
e1a229028d test/analyzer: clear analyzer buffer after IO init 2016-04-15 01:18:36 +08:00
511913230f test_analyzer: loop_out.off() 2016-04-14 22:57:16 +08:00
d42ef46471 test: set inputs to input(), should close #383 2016-04-12 18:17:53 +08:00
whitequark
12d6f1d963 Commit missing parts of bb064c67a. 2016-04-06 23:46:19 +00:00
whitequark
9cc9e8b276 embedding: s/kernel_constant_attributes/kernel_invariants/g
Requested in #359.
2016-04-06 22:38:31 +00:00
73795ff788 test_rtio: integer division 2016-04-06 02:26:20 +08:00
4bc5eaf9e8 test_rtio: scale speed test results to 'event' intervals 2016-04-06 00:55:13 +08:00
76dcccb33b test_rtio: comments and correction
* add comments what is actually being measured in the two rate tests
* remove spurious factor of two
2016-04-05 20:51:03 +08:00
whitequark
14caa2713c test_pulse_rate_dds: adjust bounds. 2016-04-05 01:52:34 +00:00
whitequark
10108e6d64 compiler: mark loaded pointers as !dereferenceable.
Also, lower the bound for test_pulse_rate_dds, since we generate
better code for it now.
2016-03-31 12:04:38 +00:00
0173031487 test/PulseRateDDS: run more iterations 2016-03-31 16:04:55 +08:00
whitequark
42609d057e test_pulse_rate_dds: tighten upper bound to 400us. 2016-03-27 14:27:32 +00:00
whitequark
2a210d74fb test_pulse_rate: tighten upper bound to 1500ns. 2016-03-26 22:45:24 +00:00
1c9b8a1d52 test/coredevice/portability/pulses: compute time differences in MU 2016-03-20 15:29:31 +08:00
ff697a47ce test/coredevice/cache: fix exception import 2016-03-19 18:00:10 +08:00
whitequark
891e3cf1fe Commit missing parts of 501de306. 2016-03-18 22:48:26 +00:00
whitequark
dbc0a89903 dds.c: turn off batch mode before an underflow can be raised.
Fixes #334.
2016-03-18 05:00:05 +00:00
9ffaf82877 test/analyzer: check that last message is StoppedMessage 2016-03-15 21:44:56 +08:00
f68c24094f test_spi: drain errors and be more strict on where we expect errors 2016-03-10 12:25:10 +01:00
d0cf589229 test/rtio/Loopback: ensure loop_out is low before starting test 2016-03-10 13:24:00 +08:00
f3a2b3a67e test/rtio: raise exception when pulse is not received 2016-03-10 12:16:18 +08:00
f4f95d330b Merge branch 'master' of github.com:m-labs/artiq 2016-03-10 11:15:30 +08:00
1739e0f2f8 coredevice: put cache into separate file/device 2016-03-10 10:46:19 +08:00
10a09122ea test_spi: break_realtime 2016-03-09 18:23:27 +01:00
8f6653ef72 test_spi: simplify test, add collision vs busy test 2016-03-09 17:58:42 +01:00
58e0e670fc tests: test spi business 2016-03-09 15:40:26 +01:00
2953b069dc rtio: when rtlink addresses are different, issue collision not replace (fixes #320) 2016-03-08 15:58:25 +08:00
71105fd0d7 rtio: collision_error -> collision 2016-03-08 15:38:35 +08:00
59d7f5f1e3 test/coredevice/time_keeps_running: start new session to prevent now_mu save/restore 2016-03-08 14:04:51 +08:00
whitequark
9ffa8cbb11 test_loopback: bump RTT limit to 60ns.
Turns out a short jumper wire on a backplane leads to RTT of 50ns
exactly.
2016-03-07 20:27:22 +00:00
683716017b test: I2C/PCA9548 unittest 2016-03-05 19:01:35 +08:00
c7d48a1765 coredevice/TTLOut: add dummy output function 2016-03-01 19:03:10 +08:00
a5bf502917 test/LoopbackCount: request correct devices 2016-02-26 14:29:51 +08:00