[Openembedded-architecture] Default opkg solver backend change to libsolv

Alejandro del Castillo alejandro.delcastillo at ni.com
Thu Feb 2 19:56:18 UTC 2017



On 02/01/2017 11:05 AM, Khem Raj wrote:
> Static codesize it one aspect, it will also be interesting to know the
> runtime memory requirements changes due to this. Since that could also
> be a concern for systems using opkg.

I just realized that my disk footprints where off. The actual libsolv
footprint is about 3 times my original estimate. Here are the correct
metrics:

========================
Disk Footprint
========================
qemux86-64	 523K
qemuarm  	 445K
qemux86  	 576K

For memory footprint, I profiled a few commands high memory watermark
via valgrind [1], with feeds containing ~18K packages:

====================================================
Command              Libsolv      Internal Solver
=====================================================
opkg update          26.21 MB      26.21 MB
opkg list            29.87 MB      29.87 MB
opkg install procps  30.99 MB      27.33 MB
opkg remove procps    1.69 MB       1.69 MB
opkg update	     30.97 MB	   27.75 MB

Libsolv increases memory usage by ~14% in the install & upgrade case.
This makes sense to me since opkg first creates internal structures for
all installed & available packages, then moves that information into
libsolv's structures, before calling the solver. A future optimization
could fill the libsolv structures directly.

[1] valgrind --tool=massif <command>
-- 
Cheers,

Alejandro



More information about the Openembedded-architecture mailing list