Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
42089bb
Split out `elf` and `stack` crates from `xtask`
jamesmunns Jul 4, 2026
156ba53
Split out some nested items from the function
jamesmunns Jul 4, 2026
e087d34
Start extracting portions of `get_max_stack`
jamesmunns Jul 4, 2026
d340c3e
Some more refactoring
jamesmunns Jul 4, 2026
5064164
Add a small harness for stack
jamesmunns Jul 5, 2026
c7990a9
More touch-ups
jamesmunns Jul 5, 2026
aa26151
Add fix for missing stack, add some tooling for catching more
jamesmunns Jul 5, 2026
184b17a
Wire up more of the new resolver
jamesmunns Jul 5, 2026
24c2dbe
Final docs/refactoring/reorg pass
jamesmunns Jul 6, 2026
a8bdeeb
Add docs from the issue writeup, and tweak recursion detection
jamesmunns Jul 6, 2026
fcb73aa
Tweak fudge factor to "max" instead of "sum" of missing items
jamesmunns Jul 6, 2026
e7bf246
Update stack limits
jamesmunns Jul 6, 2026
8adc77d
Merge remote-tracking branch 'origin/master' into james/enhance-stack
jamesmunns Jul 7, 2026
3aa8112
Fix bad merge
jamesmunns Jul 7, 2026
a845439
Work on new chunking logic
jamesmunns Jul 8, 2026
8df02ed
Handle missing size info
jamesmunns Jul 9, 2026
706be11
Add allow-list of recursion sites
jamesmunns Jul 9, 2026
928e20a
danke clippy
jamesmunns Jul 9, 2026
47502cc
Disallow self-recursion too, unless allowed
jamesmunns Jul 9, 2026
53e26cc
Allow recursion
jamesmunns Jul 9, 2026
e509b3e
A few review comments, bump demo app task size
jamesmunns Jul 9, 2026
ca8a831
One more clippy
jamesmunns Jul 9, 2026
be21fa1
Re-organize, cleanup docs
jamesmunns Jul 9, 2026
b3c9f09
Bump a bunch of stack sizes
jamesmunns Jul 9, 2026
1593c5a
lol
jamesmunns Jul 9, 2026
1129ba3
Revert, adding `stackblow` to the recursion doesn't help
jamesmunns Jul 9, 2026
56072c9
Add ignore list
jamesmunns Jul 9, 2026
b4d1e4f
thanks clippy
jamesmunns Jul 9, 2026
03c8344
Bump grapefruit, remove extra notation
jamesmunns Jul 9, 2026
7823010
Bump gimletlet
jamesmunns Jul 9, 2026
cbd7610
bump cosmo
jamesmunns Jul 9, 2026
b702011
bump dev
jamesmunns Jul 9, 2026
c2f17a5
Merge remote-tracking branch 'origin/master' into james/enhance-stack
jamesmunns Jul 15, 2026
b4ad497
Bump PSC/Observer
jamesmunns Jul 16, 2026
b7cee9a
Bump sidecar
jamesmunns Jul 16, 2026
5af9908
Bump gimletlet
jamesmunns Jul 16, 2026
3a08329
Improve docs
jamesmunns Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions app/cosmo/base.toml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ notifications = ["i2c1-irq", "i2c2-irq", "i2c3-irq", "i2c4-irq"]
[tasks.packrat]
name = "task-packrat"
priority = 1
stacksize = 1400
stacksize = 1496
start = true
task-slots = ["jefe"]
features = ["cosmo", "ereport"]
Expand Down Expand Up @@ -259,7 +259,7 @@ uses = ["usart6", "dbgmcu"]
interrupts = {"usart6.irq" = "usart-irq"}
priority = 9
max-sizes = {flash = 74000, ram = 65536}
stacksize = 5400
stacksize = 7632
start = true
task-slots = ["sys", { cpu_seq = "cosmo_seq" }, "hf", "control_plane_agent", "net", "packrat", "i2c_driver", { spi_driver = "spi2_driver" }, "sprot", "auxflash"]
notifications = ["jefe-state-change", "usart-irq", "multitimer", "control-plane-agent"]
Expand Down Expand Up @@ -385,6 +385,7 @@ start = true
notifications = ["jefe-state-change", "timer"]
task-slots = ["jefe", "spartan7_loader", "packrat", "sensor"]
uses = ["mmio_dimms"]
stacksize = 904

[tasks.auxflash]
name = "drv-auxflash-server"
Expand Down
6 changes: 3 additions & 3 deletions app/gimlet/base.toml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ notifications = ["i2c1-irq", "jefe-state-change"]
[tasks.packrat]
name = "task-packrat"
priority = 1
stacksize = 1400
stacksize = 1496
start = true
task-slots = ["jefe"]
features = ["gimlet", "ereport"]
Expand Down Expand Up @@ -166,7 +166,7 @@ name = "drv-gimlet-seq-server"
features = ["h753"]
priority = 4
max-sizes = {flash = 131072, ram = 16384 }
stacksize = 2600
stacksize = 2792
start = true
task-slots = ["sys", "i2c_driver", {spi_driver = "spi2_driver"}, "hf", "jefe", "packrat"]
notifications = ["timer", "vcore"]
Expand Down Expand Up @@ -244,7 +244,7 @@ uses = ["uart7", "dbgmcu"]
interrupts = {"uart7.irq" = "usart-irq"}
priority = 8
max-sizes = {flash = 72000, ram = 65536}
stacksize = 5376
stacksize = 7280
start = true
task-slots = ["sys", { cpu_seq = "gimlet_seq" }, "hf", "control_plane_agent", "net", "packrat", "i2c_driver", { spi_driver = "spi2_driver" }, "sprot"]
notifications = ["jefe-state-change", "usart-irq", "multitimer", "control-plane-agent"]
Expand Down
2 changes: 1 addition & 1 deletion app/gimletlet/app.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ name = "task-packrat"
priority = 1
start = true
task-slots = ["jefe"]
stacksize = 1400
stacksize = 1480
features = ["ereport"]
notifications = ["task-faulted"]

Expand Down
1 change: 1 addition & 0 deletions app/grapefruit/base.toml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ start = true
# task-slots is explicitly empty: packrat should not send IPCs!
task-slots = []
features = ["grapefruit", "boot-kmdb"]
stacksize = 1496

[tasks.hiffy]
name = "task-hiffy"
Expand Down
2 changes: 1 addition & 1 deletion app/grapefruit/standalone.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interrupts = {"uart8.irq" = "usart-irq"}

# Ereport stuff
[tasks.packrat]
stacksize = 1400
stacksize = 1496
task-slots = ["jefe"]
features = ["ereport"]
notifications = ["task-faulted"]
Expand Down
2 changes: 1 addition & 1 deletion app/observer/base.toml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ notifications = ["i2c2-irq", "i2c3-irq", "i2c4-irq"]
[tasks.packrat]
name = "task-packrat"
priority = 1
stacksize = 1400
stacksize = 1480
start = true
task-slots = ["jefe"]
features = ["ereport"]
Expand Down
2 changes: 1 addition & 1 deletion app/psc/base.toml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ notifications = ["i2c2-irq", "i2c3-irq"]
[tasks.packrat]
name = "task-packrat"
priority = 1
stacksize = 1400
stacksize = 1480
start = true
task-slots = ["jefe"]
features = ["ereport"]
Expand Down
2 changes: 1 addition & 1 deletion app/sidecar/base.toml
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ notifications = ["timer"]
[tasks.packrat]
name = "task-packrat"
priority = 1
stacksize = 1400
stacksize = 1480
start = true
task-slots = ["jefe"]
features = ["ereport"]
Expand Down
12 changes: 12 additions & 0 deletions build/elf/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "elf"
version = "0.1.0"
edition = "2024"

[dependencies]
anyhow = { workspace = true }
goblin = { workspace = true }
scroll = { workspace = true }

[lints]
workspace = true
File renamed without changes.
16 changes: 16 additions & 0 deletions build/stack/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[package]
name = "stack"
version = "0.1.0"
edition = "2024"

[dependencies]
anyhow = { workspace = true }
goblin = { workspace = true }
capstone = { workspace = true }
rustc-demangle = { workspace = true }
leb128 = { workspace = true }

elf = { path = "../elf" }

[lints]
workspace = true
Loading
Loading