Commit 6432590
Remove Allocations from Panic Handler (#818)
* Update cargo hash in flake.nix
Signed-off-by: adamperlin <[email protected]>
* Remove allocations in panic handler by formatting panic message
using a new FixedStringBuf type backed by a static mut array.
Adds a test to verify that StackOverflow no longer occurs on OOM panic
Signed-off-by: adamperlin <[email protected]>
* Clear buffer before recursive panics
Add some docstrings
Signed-off-by: adamperlin <[email protected]>
* Update cargoHash in flake.nix
Signed-off-by: adamperlin <[email protected]>
* Remove unused imports
Signed-off-by: adamperlin <[email protected]>
* Add copyright header to fixed_buf.rrs
Signed-off-by: adamperlin <[email protected]>
* Call abort_with_code_and_message directly in case of format failure in panic handler to avoid any possible recursive panic
Signed-off-by: adamperlin <[email protected]>
* Update src/hyperlight_host/tests/integration_test.rs
Co-authored-by: Copilot <[email protected]>
Signed-off-by: Adam Perlin <[email protected]>
* Update src/tests/rust_guests/simpleguest/src/main.rs
Co-authored-by: Copilot <[email protected]>
Signed-off-by: Adam Perlin <[email protected]>
* Make FixedBuf take ownership of underlying byte slice
Signed-off-by: adamperlin <[email protected]>
* Apply cargo fmt
Signed-off-by: adamperlin <[email protected]>
* Remove unused import
Signed-off-by: adamperlin <[email protected]>
* 1. Add vec allocation after alloc::alloc failure to ensure panic in
integration test
2. Resolve clippy errors
Signed-off-by: adamperlin <[email protected]>
* Use heapless crate instead of custom fixed string buffer
for panic string formatting
Signed-off-by: adamperlin <[email protected]>
* Downgrade heapless to 0.8.0 to fix cargo crash
Signed-off-by: adamperlin <[email protected]>
* apply cargo fmt
Signed-off-by: adamperlin <[email protected]>
* Remove whitespace in panic handler and rename test function in
simpleguest
Signed-off-by: adamperlin <[email protected]>
* Write null terminator as part of initial panic message format
Signed-off-by: adamperlin <[email protected]>
* Stack allocate panic message buffer to avoid use of mutex on static
Signed-off-by: adamperlin <[email protected]>
* Increase panic buffer size and add description to format error message
Signed-off-by: adamperlin <[email protected]>
* Create an fmt::Write implementation that writes formatted string to port-based io directly to stream
error messages to the host and avoid needing a fixed-size buffer in the
panic handler.
Signed-off-by: adamperlin <[email protected]>
* Remove heapless dependency
Signed-off-by: adamperlin <[email protected]>
* fmt-apply
Signed-off-by: adamperlin <[email protected]>
* Remove unnecessary unsafe in write_abort
Signed-off-by: adamperlin <[email protected]>
* Update src/hyperlight_guest/src/exit.rs
Co-authored-by: Dan Chiarlone <[email protected]>
Signed-off-by: James Sturtevant <[email protected]>
---------
Signed-off-by: adamperlin <[email protected]>
Signed-off-by: Adam Perlin <[email protected]>
Signed-off-by: James Sturtevant <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: James Sturtevant <[email protected]>
Co-authored-by: Dan Chiarlone <[email protected]>1 parent f154d8e commit 6432590
File tree
5 files changed
+97
-7
lines changed- src
- hyperlight_guest_bin/src
- hyperlight_guest/src
- hyperlight_host/tests
- tests/rust_guests/simpleguest/src
5 files changed
+97
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
70 | 78 | | |
71 | 79 | | |
72 | 80 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
143 | | - | |
144 | | - | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
145 | 168 | | |
146 | | - | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
147 | 173 | | |
148 | 174 | | |
149 | 175 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
531 | 531 | | |
532 | 532 | | |
533 | 533 | | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
534 | 564 | | |
535 | 565 | | |
536 | 566 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
508 | 509 | | |
509 | 510 | | |
510 | 511 | | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
511 | 529 | | |
512 | 530 | | |
513 | 531 | | |
| |||
1108 | 1126 | | |
1109 | 1127 | | |
1110 | 1128 | | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
1111 | 1137 | | |
1112 | 1138 | | |
1113 | 1139 | | |
| |||
0 commit comments