#
8de05425
|
| 06-Aug-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
merge binaries bmcweb and bmcwebd
Solution to reduce compressed rofs size.
Conclusion: The compiler is better at reducing binary size than the rofs compression is at deduplicating sections of alrea
merge binaries bmcweb and bmcwebd
Solution to reduce compressed rofs size.
Conclusion: The compiler is better at reducing binary size than the rofs compression is at deduplicating sections of already compiled binaries, in the case of bmcweb.
What's been changed?
`bmcweb` and `bmcwebd` have been merged into `bmcweb`. The webserver can be started with `bmcweb daemon`.
Commands used to check size
``` wc -c build/s8030/tmp/work/*-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/obmc-phosphor-image-1.0/static/image-rofs
wc -c build/s8030/tmp/deploy/images/s8030/image-rofs
xz -c build/s8030/tmp/work/*-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/rootfs/bin/bmcweb | wc -c
xz -c build/s8030/tmp/work/*-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/rootfs/usr/libexec/bmcwebd | wc -c ```
Base commit used for testing: `2169e896448fac1b59c57516b381492e4b2161c7`
Results:
Before patch: ``` image-rofs compressed size: 25526272 build/s8030/tmp/work/s8030-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/obmc-phosphor-image-1.0/static/image-rofs rootfs 25526272 build/s8030/tmp/deploy/images/s8030/image-rofs bmcweb cli 95424 bmcwebd 1016004 ```
After patch: ``` image-rofs compressed size: 25477120 build/s8030/tmp/work/s8030-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/obmc-phosphor-image-1.0/static/image-rofs rootfs 25477120 build/s8030/tmp/deploy/images/s8030/image-rofs bmcweb cli 96 bmcwebd 1059556 ```
Calculating the difference in compressed rofs
25526272 - 25477120 = 49152
which is around 0.2% in terms of the total image but around 4.6% in terms of bmcwebd binary.
Tested: on yosemite4 qemu
`bmcweb` cli interactions work as before.
``` root@yosemite4:~# bmcweb --help BMCWeb CLI Usage: bmcweb [OPTIONS] SUBCOMMAND
Options: -h,--help Print this help message and exit
Subcommands: loglevel Set bmcweb log level daemon Run webserver root@yosemite4:~# bmcweb loglevel info <6>[webserver_cli.cpp:97] logging level changed to: INFO root@yosemite4:~# bmcweb loglevel level is required Run with --help for more information. root@yosemite4:~# bmcweb loglevel debug <6>[webserver_cli.cpp:97] logging level changed to: DEBUG ```
systemd service still working ``` root@yosemite4:~# systemctl status bmcweb ● bmcweb.service - Start bmcweb server Loaded: loaded (/usr/lib/systemd/system/bmcweb.service; enabled; preset: enabled) Active: active (running) since Thu 2025-04-03 13:35:45 PDT; 5 months 15 days ago ```
Change-Id: Ib5dde568ac1c12c5414294ed96404c6a69417424 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|