Commit Graph

2858 Commits

Author SHA1 Message Date
whitequark
8b6418c604 artiq_devtool: more robust port forwarding. 2016-11-11 15:22:07 +00:00
whitequark
3b6cbb1f06 artiq_devtool: implement. 2016-11-10 20:25:15 +00:00
whitequark
0e76cbc414 artiq_compile: actually disable attribute writeback.
I wrote both halves of this condition but forgot to hook
them together.

Fixes #586.
2016-11-10 01:04:36 +00:00
David Nadlinger
bfbdba9205 compiler: Emit all-kernel_invariant objects as LLVM constants
This enables constant propagation optimisations, as verified by
the included test case. This is only a first stop-gap measure, though;
we should support optimisation based on kernel invariants on a more
fine-grained level.
2016-11-09 14:50:48 +00:00
99ad9b5917 add has_dds, use config flags 2016-11-08 23:33:03 +08:00
whitequark
ec8fe6f8bd Revert "Revert "Revert "Revert "Update for LLVM 3.9.""""
This reverts commit 7b81ed1d18.
2016-11-08 14:22:47 +00:00
whitequark
7b81ed1d18 Revert "Revert "Revert "Update for LLVM 3.9."""
This reverts commit 0d7688017b.
2016-11-08 12:58:20 +00:00
whitequark
a8fd697d41 runtime: unbreak 453e8b7.
Running
  rustc --cfg 'foo="1"'
does not result in a statement of the form
  do_thing()
to be compilex in.
2016-11-08 12:57:06 +00:00
whitequark
e0297039c9 artiq_run: fix bitrot in .ll/.bc runners. 2016-11-08 12:08:20 +00:00
whitequark
0d7688017b Revert "Revert "Update for LLVM 3.9.""
This reverts commit 5f5975844a.
2016-11-08 11:59:16 +00:00
whitequark
798a5f70df Revert "runtime: remove some redundant libm functions copied inline."
This reverts commit fee75bd50f.

LLVM does not have lround as a libcall and this inhibits LICM.
2016-11-08 11:54:17 +00:00
David Nadlinger
6e77f65d50 compiler: Clarify recv_rpc value names and documentation [nfc]
Previously, the phi emitted for the pointer parameter to recv_rpc was –
rather confusingly – called "size", and the pseudo-code in the comment
had bit-rotted.

Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-11-07 14:38:21 +00:00
453e8b7eb3 runtime: support configurations without moninj, log or dds 2016-11-06 23:53:10 +08:00
David Nadlinger
7dcc987dd7 compiler: Fix break/continue targets in loop else blocks
Previously, they would still target the respective labels in the
just-exited loop.

Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-11-05 02:35:01 +00:00
8ec73cb9ec dashboard: pack moninj widgets (#603) 2016-11-04 16:20:46 +08:00
whitequark
b30734a105 runtime: fix a race condition with async RPCs.
session.rs has code like:

    while !rpc_queue::empty() {
        try!(process_kern_queued_rpc(stream, &mut session))
    }

    // A

    if mailbox::receive() != 0 {
        try!(process_kern_message(waiter, Some(stream), &mut session));
    }

If both an async and a mailbox RPC (async or large sync) are posted
at point A then they will be processed out of order.
This commit fixes the issue by flushing the async RPC queue before
posting any RPC to the mailbox.
2016-11-01 13:22:22 +00:00
whitequark
6fcd57a41a runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
whitequark
2095d01b84 runtime: dirty hacks to remove allocations in ksupport. 2016-11-01 08:55:49 +00:00
whitequark
c1e6d4b67c runtime: fix multiple async RPC bugs. 2016-11-01 06:51:44 +00:00
whitequark
636d4efe81 gateware: rewrite mailbox to use bits_for. 2016-11-01 06:28:43 +00:00
43cd970100 make set_dataset and mutate_dataset async RPCs 2016-11-01 11:11:41 +08:00
whitequark
18ae8d54a3 gateware: fix mailbox. 2016-11-01 02:33:00 +00:00
whitequark
898a716b91 runtime: work around mor1kx ignoring low bits of reset address.
Fixes #599.
2016-10-31 18:13:15 +00:00
whitequark
617e345d16 gateware: fix kernel CPU exec address. 2016-10-31 15:16:35 +00:00
2392113bb6 kc705: use misoc clock for false path 2016-10-30 11:16:04 +08:00
whitequark
cd68577dbc compiler: add support for async RPCs. 2016-10-30 00:57:31 +00:00
whitequark
2ac85cd40f runtime: implement prototype background RPCs. 2016-10-29 21:34:25 +00:00
c656a53532 kc705: clean up clock constraints 2016-10-29 21:28:01 +08:00
ed4d57c638 use new Migen signal attribute API 2016-10-29 21:19:58 +08:00
whitequark
6872017449 gateware: extend mailbox to 3 entries. 2016-10-21 12:09:14 +00:00
6aa13fbf25 master/worker_db: set default value for archive 2016-10-19 20:12:16 +08:00
5d184f8061 master: keep dataset manager consistent when set_dataset is called with contradictory attributes 2016-10-18 17:11:07 +08:00
69d96b0158 master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
ed2624545f master: ensure same dataset is in broadcast and local when mutating 2016-10-18 17:11:07 +08:00
1908339d4e scheduler: default submission arguments, closes #577 2016-10-18 17:11:06 +08:00
0e41725e2d pdq2: sync with pdq2 2016-10-18 09:43:46 +02:00
69099691f7 doc: clarify usage of pause/check_pause, closes #571 2016-10-17 20:08:15 +08:00
02adccf4a2 dashboard/datasets: use scientific spinbox and increase number of decimals, closes #572 2016-10-17 19:57:59 +08:00
85834976d9 gateware/spi: fix import 2016-10-17 14:06:35 +08:00
whitequark
6da1f39670 runtime: fix use of $(realpath) in Makefile. 2016-10-17 00:11:02 +00:00
whitequark
f10a4498c7 test: fix printf specifier. 2016-10-16 23:54:29 +00:00
whitequark
2a9e370840 llvm_ir_generator: make sure RPC allocations are not underaligned. 2016-10-16 16:43:03 +00:00
whitequark
7618907cad runtime: use i64 for watchdog timeout, not i32. 2016-10-16 16:32:43 +00:00
whitequark
a8c017bfcc runtime: port ksupport to Rust. 2016-10-16 16:32:43 +00:00
whitequark
fee75bd50f runtime: remove some redundant libm functions copied inline. 2016-10-16 16:25:29 +00:00
David Nadlinger
e037d167f4 language: Add "A" (ampere) as well-known unit for arguments
Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-10-13 12:22:01 +08:00
whitequark
9c3394794e runtime: cap log level at debug. 2016-10-07 14:24:12 +00:00
whitequark
4d790b452c runtime: discard unnecessary sections. 2016-10-07 08:30:14 +00:00
whitequark
ef10344b3e runtime: rewrite isr() in Rust. 2016-10-07 06:27:10 +00:00
whitequark
8be60cc223 runtime: fix KERNELCPU_LAST_ADDRESS after layout change. 2016-10-07 05:53:55 +00:00
whitequark
4f11b071a5 runtime: remove useless handshaking in analyzer. 2016-10-07 05:53:16 +00:00
whitequark
b52ecda1d5 runtime: make memory map saner. 2016-10-06 18:05:38 +00:00
whitequark
b4bbf44a0a runtime: buffer writes of RPC data.
This improves upload speed ~166×.
2016-10-06 17:32:26 +00:00
whitequark
557bc4bb56 runtime: remove unnecessary buffering. 2016-10-06 17:25:43 +00:00
whitequark
edafb08b43 test: fix d6193365. 2016-10-06 16:27:12 +00:00
whitequark
d619336503 test: update libartiq_support for changed personality ABI. 2016-10-06 15:44:55 +00:00
whitequark
bcdbd00e7b runtime: remove unnecessary null bytes from session protocol. 2016-10-06 15:39:00 +00:00
whitequark
5428a866b3 runtime: the Rust runtime is now just the runtime. 2016-10-06 15:38:45 +00:00
whitequark
3e829d0d01 Rust: unborrow cache after kernel stops. 2016-10-06 14:19:12 +00:00
whitequark
e92f20546a Rust: implement exceptional RPC replies. 2016-10-06 14:08:02 +00:00
whitequark
226fa723bb Rust: implement exceptional kernel termination.
This also adjusts the way backtraces are serialized by kloader.
2016-10-06 13:42:35 +00:00
whitequark
84214ab0d1 Rust: don't panic when loading a kernel twice in same session. 2016-10-06 12:55:19 +00:00
whitequark
6b2789e3db test: add more RPC tests. 2016-10-06 12:54:08 +00:00
whitequark
2ae30b5a95 Rust: aggregate kernel CPU log messages and print line by line. 2016-10-06 10:56:19 +00:00
whitequark
3362887d75 Rust: implement receiving for all RPC types. 2016-10-06 10:55:54 +00:00
whitequark
516c6fdea9 language: export TTuple. 2016-10-06 10:55:33 +00:00
whitequark
5a630067cb Rust: implement sending for all RPC types. 2016-10-06 06:31:27 +00:00
whitequark
4cfc4e89b9 Rust: add basic RPC support. 2016-10-05 14:15:53 +00:00
whitequark
0a29c00fcc Rust: implement analyzer. 2016-10-05 05:59:38 +00:00
whitequark
2fefd0ad4a Rust: implement moninj. 2016-10-04 12:42:44 +00:00
whitequark
2e4d19a1ce Rust: add some conditional compilation back to rtio_crg. 2016-10-04 12:42:42 +00:00
whitequark
b590c6c7d8 Rust: import --cfg flags generated by misoc. 2016-10-04 08:15:13 +00:00
whitequark
0e2cd38135 Rust: set the SOF_KEEPALIVE flag on session sockets. 2016-10-04 06:42:09 +00:00
whitequark
2b3bc30396 Rust: implement startup kernels. 2016-10-04 06:08:08 +00:00
whitequark
0cd87af386 Rust: don't crash kernel CPU when no flash kernel is present. 2016-10-04 05:27:54 +00:00
whitequark
6bbaff81bf Rust: implement idle kernels. 2016-10-04 05:20:56 +00:00
whitequark
398b709e25 Rust: use try_borrow where applicable. 2016-10-04 03:26:53 +00:00
whitequark
30e997f045 Rust: implement idle kernels and session takeover. 2016-10-02 04:37:24 +00:00
whitequark
8bced9dcb5 Rust: implement cache. 2016-10-01 18:24:53 +00:00
whitequark
d825393e81 Rust: implement watchdogs. 2016-10-01 16:26:57 +00:00
whitequark
5701b2095b Rust: implement all messages used in the kernel interface. 2016-10-01 16:10:09 +00:00
whitequark
ab3bd67412 Rust: style (NFC). 2016-10-01 16:10:09 +00:00
whitequark
999290fe52 runtime: link ksupport with libm, not runtime.
We need libm for the %g format specifier.
2016-10-01 16:10:09 +00:00
whitequark
d3dcb4b8a2 runtime: remove useless copy of flush_cpu_dcache().
ksupport used to not link to libbase, I think.
2016-10-01 16:10:09 +00:00
whitequark
b3b1ea71c5 Rust: implement basic communication with kernel CPU. 2016-10-01 04:20:27 +00:00
whitequark
1cbb187136 runtime: eliminate va_list from kernel interface. 2016-09-30 03:07:27 +00:00
whitequark
7cfa667d98 runtime: eliminate struct dyld_info from kernel interface. 2016-09-30 03:03:35 +00:00
whitequark
c6a57d2043 Rust: port mailbox routines. 2016-09-30 00:15:20 +00:00
whitequark
55b2535477 Rust: print git commit during startup. 2016-09-29 22:04:52 +00:00
whitequark
9d00023401 Rust: move a few things around (NFC). 2016-09-29 20:56:35 +00:00
whitequark
9c18f1b555 Rust: port clock, rtio_crg routines. 2016-09-29 20:42:40 +00:00
whitequark
83940ae4a6 Rust: add support for artiq_coreconfig. 2016-09-29 18:54:08 +00:00
whitequark
1e392cca64 runtime: remove "test mode" functionality. 2016-09-29 14:48:26 +00:00
whitequark
3263def5c8 Rust: use generated CSR functions. 2016-09-29 14:04:42 +00:00
whitequark
fdcb27ccff Rust: add support for artiq_corelog. 2016-09-28 18:25:25 +00:00
whitequark
b14c19a886 Rust: add skeleton session protocol implementation.
Only ident requests are supported right now.
2016-09-27 13:37:17 +00:00
whitequark
89d4621c09 Rust: fix TcpStream::read. 2016-09-27 13:37:17 +00:00
whitequark
b8137103c3 Rust: fix prelude. 2016-09-27 13:37:17 +00:00
whitequark
9562d8d1df Rust: liblwip: call tcp_recved where appropriate. 2016-09-27 13:37:17 +00:00
8280e72e90 gateware: use new misoc CSR mapping API 2016-09-24 20:48:37 +08:00