emmc-log: Check size based on device usage
The runtime log is configured to be max of 64MB
```
RuntimeMaxUse=64M
```
however, `du -bs /run/log/journal` is returning apparent sizes rather
than device usage. This can lead to cases where `req_size` is always
greater than `free_size` (256MB)... leading to the exit condition never
met and stuck in forever loop.
- https://man7.org/linux/man-pages/man1/du.1.html
Tested:
On a machine that was stuck with forever loop. After fix,
```
systemctl status emmc-log -l
● emmc-log.service - Configure journald to log to eMMC
Loaded: loaded (/usr/lib/systemd/system/emmc-log.service; enabled; preset: enabled)
Active: active (exited) since Wed 2025-09-24 22:41:53 PDT; 5min ago
Invocation: 6dbb64d66e904e16ba289478b34794a1
Process: 2987 ExecStart=/usr/bin/emmc_logging.sh (code=exited, status=0/SUCCESS)
Main PID: 2987 (code=exited, status=0/SUCCESS)
CPU: 330ms
Sep 24 22:41:53 yucbfiv-dck2-bmc-01.prod.google.com systemd[1]: Started Configure journald to log to eMMC.
Sep 24 22:41:53 yucbfiv-dck2-bmc-01.prod.google.com emmc_logging.sh[2987]: Didn't detect eMMC log network enable flag. Start persistent eMMC log and then exit.
Sep 24 22:41:53 yucbfiv-dck2-bmc-01.prod.google.com emmc_logging.sh[2988]: current_machine_id: 6474028294164354a96fc86d9595ac94
Sep 24 22:41:53 yucbfiv-dck2-bmc-01.prod.google.com systemctl[3002]: Stopping 'rsyslog.service', but its triggering units are still active:
Sep 24 22:41:53 yucbfiv-dck2-bmc-01.prod.google.com systemctl[3002]: syslog.socket
Sep 24 22:41:53 yucbfiv-dck2-bmc-01.prod.google.com emmc_logging.sh[2988]: Flushing journal logs to eMMC
Sep 24 22:42:08 yucbfiv-dck2-bmc-01.prod.google.com emmc_logging.sh[2988]: Journald is now logging to eMMC
```
Fusion-Link: fusion2 N/A. Fixes high CPU usage corner case.
Platforms-Affected: TTF
Google-Bug-Id: 445273426
Change-Id: I6ae9576ba54f2b37947e61754333bd38e3a557a9
Signed-off-by: Willy Tu <wltu@google.com>
(cherry picked from commit 50085d75e67c454769b0b7c608a94379a49f99b5)
1 file changed