Releases: microsoft/demikernel
Releases · microsoft/demikernel
Demikernel v1.5
Full Changelog: v1.4...v1.5
Demikernel v1.4 (Stable Catloop LibOS)
What's Changed
- [build] Wrong Build Dependencies by @ppenna in #809
- [scheduler] Improve tests by @anandbonde in #802
- [build] Increase Build Timeout by @ppenna in #814
- [build] Build Warnings by @ppenna in #813
- [catloop] Inconsistent Port Allocation by @ppenna in #811
- [inetstack] Non Ephemeral Port May Get Released by @ppenna in #810
- [ci] Enable tcp-echo Catloop LibOS by @ppenna in #817
- [scheduler] Several scope, readability and test improvements by @anandbonde in #819
- [catloop] Drop Trait Implementation by @ppenna in #815
- [catloop] Always Bound Read from Control Duplex Pipe by @iyzhang in #836
- [catloop] Close new duplex pipe when not MAGIC_CONNECT by @iyzhang in #837
- [scheduler] Avoid double remove() by @anandbonde in #838
- [scheduler] Deprecate TaskHandle.deschedule() by @anandbonde in #839
- [ci] Improve CI configurability by @anandbonde in #796
- [scheduler] Simplified the poll function and deprecated the drop part. by @anandbonde in #840
- [catnap] Enhancement: More compact state machine code by @iyzhang in #844
- [catloop] Missing
async_close()
by @ppenna in #816 - [ci] New workflow files by @anandbonde in #845
- [doc]Architectural Diagram by @ppenna in #846
- [pal] Move SOMAXCONN to PAL by @anandbonde in #849
- [contrib] Updating Packages by @ppenna in #852
- [scheduler] Centralize index computations, simplify TaskHandle by @anandbonde in #850
- [runtime] Enhancement: drain for IoQueueTable by @ppenna in #855
- [catnap] Enhancement: re-architect Catnap by @iyzhang in #851
- [contrib] Updating Dependencies by @ppenna in #858
- [ci] Switch to new CI architecture by @anandbonde in #854
- [ci] No Concurrency for Catloop LibOS by @ppenna in #861
- [catmem] Restructuring by @iyzhang in #853
- [catnap] Move states and YielderHandle allocation into CatnapQueue by @iyzhang in #857
- [catmem] Mutex locking by @iyzhang in #864
- [catmem] Check for Closing and Closed Ring by @ppenna in #866
- [examples] Handle
ECANCELED
by @ppenna in #871 - [catnap] Encapsulate scheduler in runtime by @iyzhang in #867
- [runtime] Move scheduler to shared runtime by @iyzhang in #868
- [contrib] Updating Dependencies by @ppenna in #874
- [catnap] State Check on
push
andpop
by @ppenna in #873 - [catloop] Isolating Queue State by @ppenna in #875
- [catmem] Move to catnap arch by @iyzhang in #876
- [network] Use PAL constants in state by @anandbonde in #877
- [catloop] Unify Scheduler by @ppenna in #879
- [catloop] Remove Harvest on Close by @ppenna in #880
- [catmem] Unify scheduler and memory runtime by @iyzhang in #881
- [catmem] Duplex Ring by @ppenna in #882
- [catloop] Move closer to Catnap arch by @iyzhang in #883
- [test] Correct doc and usage of pushto by @anandbonde in #892
- [catloop] Enhancement: Schedule all coroutines from Catloop by @iyzhang in #891
- [catloop]
INADDR_ANY
Should Be Supported As The Wildcard Address by @ppenna in #893 - [catnap] Move coroutines to standalone functions by @iyzhang in #897
- [runtime] Add IoQueueTable to DemiRuntime by @iyzhang in #898
- [catnap] Don't Panic on Drop by @ppenna in #904
- [catloop] Interpose Error on Connect by @ppenna in #899
- [catloop] Disallow Bind to Non-Local Address by @ppenna in #900
- [catloop] Don't Allow
accept()
On A Socket That Is Already Accepting by @ppenna in #901 - [catnap] Check retry after try_push() by @anandbonde in #912
- [src] Use FIXME comments instead of
deprecated
attribute by @anandbonde in #914 - [catnap] Moving to Standalone Async Functions by @ppenna in #902
- [catloop] Fixing Bugs Around Close by @ppenna in #911
- [test] Enable Integration Tests for Catloop by @ppenna in #913
- [catcollar] Move to async fns by @iyzhang in #909
- [collections] Concurrent Ring Buffer by @iyzhang in #865
- [catloop] Move IoQueueTable by @iyzhang in #907
- [ci] Updating testing.md file. by @carvalhof in #915
- [contrib] Updating Dependencies by @ppenna in #921
- [catnapw] Merge the Catnapw and Catnap LibOSes by @anandbonde in #918
- [catmem] Use Full Ring Name by @ppenna in #917
- [catmem] Performance counters by @carvalhof in #919
- [contrib] Updating Rust Toolchain by @ppenna in #922
- [catloop] Performance counters by @carvalhof in #920
- [collections] Performance counters by @carvalhof in #925
- [catloop] Ensure Accepting in
accept
by @ppenna in #927 - [catmem] Checks for Push and Pop by @ppenna in #928
- [runtime] Move from generics to dynamic typing for I/O Queue Table by @iyzhang in #923
- [runtime] New shared object for shared state by @iyzhang in #926
- [catnap] Remove all Rc and replace with SharedObject by @iyzhang in #929
- [makefile] Allowing mlx5 driver for ConnectX-6 NICs by @carvalhof in #931
- [catloop] Updating task name by @carvalhof in #932
- [runtime] Enhancement: Add Shared to variable name by @iyzhang in #934
- [demikernel] Enhancement: generalize libOS APIs and C bindings from SocketAddrV4 to SocketAddr by @kyleholohan in #936
- [demikernel] Localize packing compiler directives for Windows builds by @anandbonde in #937
- [demikernel] Bump up the windows and socket2 crates by @anandbonde in #938
- [catmem] Enhancement: Move to shared object by @iyzhang in #941
- [ci] Support Concurrent Workflows by @ppenna in #939
- [contrib] Updating Dependencies and Rust Toolchain by @ppenna in #940
- [catloop] Move to shared object by @iyzhang in #942
- [catmem] Enhancement: Move to shared object queues by @iyzhang in #949
- [catloop] Enhancement: Move to shared queues by @iyzhang in #950
- [catmem] Enhancement: Remove standalone functions by @iyzhang in #951
- [test] Check for
EBADF
on Wait by @ppenna in #952 - [catloop] Rollback If Close Fails by @ppenna in #953
- [catloop] Error When Ring Closing/Closed by @ppenna in #948
- [runtime] Unify Retry Test by @ppenna in #956
- [catloop] Warn Backlog Length Listen by @ppenna in #955
- [inetsta...
Demikernel v1.3 (Stable Catmem LibOS)
What's Changed
- [catloop] Move to async functions and add yield and cancel on close by @iyzhang in #785
- [inetstack] Generic Checksum by @carvalhof in #772
- [catnap] Add Profiler Annotations by @ethandmd in #792
- [catmem] Rename schedule function by @iyzhang in #793
- [catloop|catmem] Fix typo, remove old comments by @anandbonde in #797
- [catmem] Name Prefix Shared Memory Regions by @ppenna in #794
- [test] Add Barrier to Ring Buffer Test by @ppenna in #795
- [catloop] Rollback Port Allocation by @carvalhof in #798
- [tests] Turn on and fix Pipe Integration Tests by @iyzhang in #799
- [catmem] Broken Trace Statement by @ppenna in #806
- [catmem] States For Pipes by @ppenna in #801
- [catmem] Add Drop Function by @iyzhang in #805
New Contributors
Full Changelog: v1.2...v1.3
Demikernel v1.2 (Stable Catnap LibOS)
What's Changed
- [runtime] Remove QResult by @anandbonde in #711
- [catnap] Implement drop for cleanup on exit by @iyzhang in #724
- [PDPIX] Do not reuse qtokens by @iyzhang in #722
- [pdpix] Don't Optimize Size of Structures by @ppenna in #726
- [runtime] Closing State for Sockets by @ppenna in #727
- [runtime] Make
RECEIVE_BATCH_SIZE
Generic by @ppenna in #732 - [Runtime] Rename scheduler handle to task handle and other things to more useful things by @iyzhang in #737
- [catnap] Transition to Connected State by @ppenna in #733
- [catnap] Rollback When Connect Fails by @ppenna in #734
- [pipe-ping-pong] Refactor to add Drop by @anandbonde in #738
- [bugfix] Poll in Every PDPIX Call by @ppenna in #739
- [pdpix] Fix Network Types to be Compatible With Each Other by @ppenna in #735
- [tcp-ping-pong] Refactor to add Drop by @anandbonde in #741
- [udp-ping-pong] Refactor to add Drop by @anandbonde in #742
- [catloop] Warn msg correction by @anandbonde in #747
- [tcp-push-pop] Refactor to add Drop by @anandbonde in #745
- [tcp-ping-pong] Additional refactors by @anandbonde in #746
- [udp-push-pop] Refactor to add Drop by @anandbonde in #744
- [doc] Socket States Diagram by @ppenna in #736
- [test] Don't Run Unit Tests Concurrently by @ppenna in #749
- [test] Enabling Testing Scenarios for TCP Wait by @ppenna in #754
- [pdpix] Use Wrapped Network Types by @ppenna in #755
- [doc] Adding Legal Documentation by @ppenna in #763
- [pipe-push-pop] Refactor to add Drop by @anandbonde in #759
- [runtime] Fix Scheduler Issues by @iyzhang in #764
- [catloop] Leaking Tasks on Connection Establishment Protocol by @ppenna in #770
- [test] Don't Close Server-Side Passive Socket Twice in
tcp-close
by @ppenna in #761 - [cleanup] Remove unnecessary code by @anandbonde in #766
- [catloop] Connection Establishment Does Not Cancel Inflight Pop Correctly by @ppenna in #771
- [catmem] Keep Track of Pending Operations by @ppenna in #762
- [runtime] Explicit drop of Tasks in scheduler by @iyzhang in #740
- [inetstack] Use TCP PSH bit by @joshuafried in #779
- [runtime] Fixing issues in scheduler by @iyzhang in #782
- [test] Enable All Async Close Tests for TCP by @ppenna in #780
- [catmem] Missing
async_close
by @ppenna in #783 - [test] Missing cases on IPv4 test-unit by @carvalhof in #784
- [bindings] Structures Are Not Packed by @ppenna in #789
- [bindings] Check for Invalid Storage Location by @ppenna in #790
- [catloop] Missing to Shift Catmem Queue Tokens When Packing Result by @ppenna in #791
New Contributors
- @joshuafried made their first contribution in #779
Full Changelog: v1.1...v1.2
Demikernel v1.1 (Stable Testing Suite)
What's Changed
- [contrib] Updating External Dependencies by @ppenna in #123
- [build] Copy Build Artifacts to a Installation Location by @ppenna in #124
- [pdpix] Renaming System Calls by @ppenna in #126
- [contrib] Upgrade
nix
tov0.24.0
Catnap and Catcollar by @ppenna in #127 - [catpowder] Replace Use of Crate socket2 by @ppenna in #129
- [catnip]
Buffer::clone()
forDPDKBuf
by @ppenna in #132 - [contrib] Updating Dependencies by @ppenna in #135
- [test] UDP Push Pop Test for C API by @ppenna in #133
- [test] TCP Push Pop Test for C API by @anandbonde in #139
- [build] Upgrading Build System for C Tests by @ppenna in #141
- [test] Enable
inval_wait()
Test by @ppenna in #143 - [pdpix] Missing Endianness Conversion for Port Number by @ppenna in #145
- [build] Suppress Warning Message When Building Catnap or Catpowder by @ppenna in #146
- [catnap] Set Source Address in
OperationResult
forpop()
by @ppenna in #149 - [test] UDP Ping Pong for C API by @ppenna in #150
- [test] TCP Ping Pong for C API by @ppenna in #151
- [catcollar] Use Buffer Abstraction by @ppenna in #154
- [pdpix] Generic Config Parsing by @ppenna in #155
- [network] Move to std network types by @anandbonde in #157
- [catcollar] Set Source Address in
OperationResult
forpop()
by @ppenna in #156 - [pdpix] Build Composition of LibOSes by @ppenna in #159
- [inetstack] Moving In Source tree by @ppenna in #162
- [doc]
demi_push()
Manual Page by @ppenna in #262 - [doc]
demi_sgaalloc()
Manual Page by @ppenna in #267 - [doc]
demi_sgafree()
Manual Page by @ppenna in #268 - [doc]
demi_wait()
Manual Page by @ppenna in #269 - [doc]
demi_socket()
Manual Page by @ppenna in #164 - [doc]
demi_init()
Manual Page by @ppenna in #165 - [doc]
demi_listen()
Manual Page by @ppenna in #166 - [doc]
demi_bind()
Manual Page by @ppenna in #167 - [doc]
demi_accept()
Manual Page by @ppenna in #261 - [doc]
demi_pushto()
Manual Page by @ppenna in #263 - [doc]
demi_pop()
Manual Page by @ppenna in #264 - [doc]
demi_connect()
Manual Page by @ppenna in #265 - [doc]
demi_close()
Manual Page by @ppenna in #266 - [doc] Cleaning Up PDPIX API Documentation by @ppenna in #270
- [examples] TCP and UDP Examples for Rust by @ppenna in #271
- [build] Split makefiles for OS by @anandbonde in #273
- [build] No Hardcode Default Path for
CARGO
by @ppenna in #276 - [pdpix]
timedwait()
System Call by @ppenna in #277 - [pdpix] Global State for Demikernel by @ppenna in #280
- [catnap][catcollar]
demi_socket()
Fails withEADDRINUSE
by @ppenna in #283 - [pal] Shared Memory Region Abstraction by @ppenna in #286
- [collections] Raw Array Abstraction by @ppenna in #288
- [collections] Ring Buffer Abstraction by @ppenna in #289
- [collections] Shared Ring Buffer Abstraction by @ppenna in #291
- [runtime] Offset Identifiers of I/O Queue Descriptors by @ppenna in #294
- [pdpix] Tagging Deprecated System Calls by @ppenna in #296
- [catnip] Bug Fix: Don't Trim on SGA Clone by @ppenna in #300
- [pdpix] Wrong Conversions Between
DataBuffer
anddemi_sgarray_t
by @ppenna in #302 - [examples] Use PDPIX In Rust Examples by @ppenna in #303
- [pdpix] Drop Deprecated System Calls by @ppenna in #304
- [pdpix] Generic
wait()
by @ppenna in #307 - [winport] Platform Abstraction Layer for Network by @anandbonde in #305
- [runtime] DemiBuffer Abstraction by @BrianZill in #298
- [test] Disable
DemiBuffer
UnitTest by @ppenna in #311 - [winport] Add Windows makefiles by @anandbonde in #309
- [runtime] Bad Deref in
DemiBuffer::drop()
Causes Segmentation Fault by @BrianZill in #312 - [pdpix] Generic
wait()
,wait_any()
andtimedwait()
by @ppenna in #313 - [winport] Enhancement: Add CatnapW for Windows by @anandbonde in #314
- [demikernel] Integrate
DemiBuffer
into the System asBuffer
/DataBuffer
Replacement by @BrianZill in #320 - [catnip] Missing Check for Return Value of
rte_eal_init()
by @ppenna in #327 - [catnip] Wrong MTU Initialization by @ppenna in #331
- [pdpix] Timeout Interval Parameter to
demi_wait()
anddemi_wait_any()
by @BrianZill in #333 - [collections] Mark Flaky
SharedRingBuffer
Unit Tests as#[ignore]
by @BrianZill in #328 - [pdpix] Use trace Logging Level to Propagate Unexpected Conditions by @ppenna in #336
- [examples] Support Multiple Clients in
tcp-echo
by @ppenna in #338 - [arp] Add Remove Function by @iyzhang in #339
- [examples] Multi-Client Support for
tcp-dump
by @ppenna in #343 - [inetstack] Accept Ethernet Multicast Packets by @BrianZill in #351
- [tools] Initial
demikernel-ci
by @ppenna in #342 - [catmem] Shared Memory LibOS by @ppenna in #348
- [ci] Updating Catnap Workflow by @ppenna in #360
- [ci] Updating Catpowder Workflow by @ppenna in #361
- [ci] Updating Catcollar Workflow by @ppenna in #362
- [catnip] Use PAL in Catnip by @anandbonde in #352
- [ci] Checkout to Dev Branch by @ppenna in #365
- [doc] Adding Issue Template for Questions by @ppenna in #366
- [doc] Testing Instructions by @ppenna in #358
- [inetstack] Push Empty Buffer on FIN by @ppenna in #370
- [build] Bumping DPDK Version by @ppenna in #375
- [catnapw] Use
DemiBuffer
Instead ofBuffer
/DataBuffer
by @anandbonde in #378 - [tcp] Fix Retransmit and Cleanup Retransmission Timeout Calculator by @BrianZill in #374
- [test] Missing to Run Some Unit Tests in
test-unit-rust
Target by @ppenna in #373 - [tools] Several Improvements for
demikernel-ci
by @ppenna in #383 - [ci] Initial Integrating Catnapw with Regression System by @ppenna in #389
- [doc] Fixing Minor Typos on Testing Instructions by @ppenna in #392
- [test]
tcp-ping-pong
Does Not Wait for Full Receive Buffer by @ppenna in #391 - [build] Fixing Build Warnings by @ppenna in #393
- [ci] Enhancement: Support Config Path Override by @ppenna in #396
- [tools] Support NFS Directories in
demikernel-ci
by @ppenn...
Demikernel 1.0 (Stable Prototype)
What's New
- Catnap - Linux Sockets LibOS
- Catpowder - Linux Raw Sockets LibOS
- Catcollar - IO Uring LibOS
- Catnip - DPDK LibOS
What's Changed
- [catnip] Read Dev Param from Env by @ppenna in #38
- [demikernel] Uniform
OperationResult
Across LibOSes by @ppenna in #55 - [catnap] Dropping Deprecated Functions by @ppenna in #60
- [demikernel] Moving In SGA System Calls by @ppenna in #63
- [catnap] Bad
OperationResult
foraccept()
by @ppenna in #59 - [build] Malformed Paths When Multiple Locations Are Found by @ppenna in #66
- [catnap] Implementing Missing System Calls by @ppenna in #68
- [pdpix] wait() and wait_any() System Calls Should Return an Error by @ppenna in #77
- [catnip] Bad Scatter-Gather Allocation/Free by @ppenna in #82
- [catnip] Memory Pool Abstraction by @ppenna in #84
- [catnap] Set Async Opts in New Socket by @ppenna in #90
- [pdpix] Don't Panic on System Calls by @ppenna in #99
- [demikernel] Introduce a Better Abstraction for Runtime Buffers by @ppenna in #87
- [pdpix] Missing DMTR_OPC_FAILED by @ppenna in #112
- [pdpix] Missing Argument Check in
wait_any()
by @ppenna in #117 - [catcollar] Initial LibOS Implementation by @ppenna in #115
New Contributors
- @iyzhang made their first contribution in #48
- @vishwanath1306 made their first contribution in #46
Full Changelog: v0.0...v1.0
Demikernel v0.0 (Research Prototype)
Legacy C++ Demikernel