pthreads at bmcweb

Milton Miller II miltonm at us.ibm.com
Thu Jan 7 05:12:42 AEDT 2021


On Jan 6, 2021 Sunitha Harish wrote:
>     Hi team,
>     Reference commit
>https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/31735 :
>     In order to handle the multiple push-style event subscribers,
>bmc       needs to support the async resolution of the subscribers
>address.       The async_resolve() API crashes if there is no thread
>support in       the binary. 
>     I created a bmcweb binary patch by pulling this commit and
>including the pthread. This works fine for the use-cases, but
>increased the bmcweb binary size by 220KB. 
?
>     Ed's suggestion is not to use the pthreads, instead implement
> alternatives to do the same job, so that the binary size is kept
>minimum. He mentioned: "Considering that's a ~30% increase in binary
>size to support one line off code, and most systems are already at
>their binary size limit, no, that's not going to be acceptable. We
>can either patch boost to use this
>https://man7.org/linux/man-pages/man3/getaddrinfo_a.3.html or we
>could build our own resolver type that calls that underneath.  This
>was based on a quick lookthrough of solutions in Google.  I'm open to
>other ideas here". 
>     I am looking for the community views about the increased bmcweb
>     binary size v/s having a custom implementation for asyc_resolve.
>      Please share your views & ideas to get to the best solution.

I agree with Ed that adding pthreads is a step that should be taken 
with a lot of caution.   In addition to the binary size, a threaded 
application also adds security audit concerns.

A quick search with the query of "dns lookup library embedded" found 
a possible library with a probably compatible license (although last 
update was 4 years ago), and the second link was a survey of other 
client and server packages that could be investigated.

My personal opinion only.

milton



More information about the openbmc mailing list