Skip to content

Conversation

@fhunleth
Copy link
Contributor

It's possible for the firmware download to be faster than fwup can write
to eMMC or MicroSD. This causes the message queue to the update manager
to balloon as data starts queuing up in route to fwup. On a device
without much extra memory, this can be a cause of the following error:

04:14:26.957 [warn] __vm_enough_memory: pid: 87, comm: erts_sched_1, not enough memory for the allocation

This commit makes the asynchronous downloader updates synchronous so
fwup can push back when the writes are time consuming. The backpressure
results in the TCP receive buffers filling and eventually the download
slowing.

It's possible for the firmware download to be faster than fwup can write
to eMMC or MicroSD. This causes the message queue to the update manager
to balloon as data starts queuing up in route to fwup. On a device
without much extra memory, this can be a cause of the following error:

```
04:14:26.957 [warn] __vm_enough_memory: pid: 87, comm: erts_sched_1, not enough memory for the allocation
```

This commit makes the asynchronous downloader updates synchronous so
fwup can push back when the writes are time consuming. The backpressure
results in the TCP receive buffers filling and eventually the download
slowing.
@fhunleth fhunleth marked this pull request as ready for review June 19, 2024 18:51
@fhunleth
Copy link
Contributor Author

@ringlej reports that this fixes the issue. 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants