> Because if your battery runs out in the middle of a 4 hour
> call, your timers are not updated and become worthless. Obviously,
> this is a compromise between how reliable the counters are and how
> many wakeups and IO we can bear.
I think this is not a good idea to have oFono handles this. Why can't
the system daemon just shutdown all calls when the battery reaches
You will never fully run down the battery anyway. One of the system
health components in the system will prevent it and then can cleanly
shutdown oFono and thus all calls. The only case where the
potentially misfunction in this area would be an emergency call. But
that is a total different use case anyway.
There are other ways in which the device might reset without warning:
- hardware glitch triggering an involuntary reset
- software glitch triggering an involuntary reset
- device drops and battery connection is momentarily broken when it hits the ground
- user rips out the battery in mid-use
While periodically syncing call and data counters to permanent memory is by no means
appealing, we have certain accuracy requirements for the stored counters. The only way
those requirements can be met is by syncing the counters to storage at reasonable
intervals. Whether this should be part of oFono is a matter for discussion, I guess, but
at minimum we need to have the enablers to do this.