Sebastien Bourdeauducq
bc36bda94a
perform RTIO init on comms CPU side
2016-12-09 14:16:55 +08:00
Sebastien Bourdeauducq
88ad054ab6
Merge branch 'drtio'
2016-12-03 23:25:17 +08:00
Sebastien Bourdeauducq
617f6897a4
runtime: more concise message
2016-12-03 11:17:47 +08:00
whitequark
5b7e068157
runtime: clear async RPC queue when kernel stops ( fixes #631 ).
2016-11-29 14:00:43 +00:00
whitequark
79e70fa465
runtime: use correct ABI when accepting ARTIQ lists.
2016-11-26 07:25:22 +00:00
whitequark
cd7527b701
runtime: print trace level log messages to UART during startup.
...
There's no way to retrieve them otherwise if the startup kernel
hangs.
2016-11-23 13:53:40 +00:00
whitequark
1d1e821a74
runtime: replace a (deliberate) memory leak with an interner.
2016-11-21 19:47:56 +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
c1e6d4b67c
runtime: fix multiple async RPC bugs.
2016-11-01 06:51:44 +00:00
whitequark
2ac85cd40f
runtime: implement prototype background RPCs.
2016-10-29 21:34:25 +00:00
whitequark
a8c017bfcc
runtime: port ksupport to Rust.
2016-10-16 16:32:43 +00:00
whitequark
557bc4bb56
runtime: remove unnecessary buffering.
2016-10-06 17:25:43 +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
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
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
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
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
b3b1ea71c5
Rust: implement basic communication with kernel CPU.
2016-10-01 04:20:27 +00:00
whitequark
9d00023401
Rust: move a few things around (NFC).
2016-09-29 20:56:35 +00:00