
Hi Sughosh,
On Mon, 29 Jul 2024 at 19:49, Sughosh Ganu sughosh.ganu@linaro.org wrote:
On Mon, 29 Jul 2024 at 23:46, Tom Rini trini@konsulko.com wrote:
On Mon, Jul 29, 2024 at 09:28:57AM -0600, Simon Glass wrote:
Hi Sughosh,
On Sun, 28 Jul 2024 at 12:07, Sughosh Ganu sughosh.ganu@linaro.org wrote:
On Thu, 25 Jul 2024 at 18:24, Sughosh Ganu sughosh.ganu@linaro.org wrote:
On Thu, 25 Jul 2024 at 02:24, Tom Rini trini@konsulko.com wrote:
On Wed, Jul 24, 2024 at 11:31:48AM +0530, Sughosh Ganu wrote:
> From: Simon Glass sjg@chromium.org > > Use this new data structure in the utility function. > > Signed-off-by: Simon Glass sjg@chromium.org > Signed-off-by: Sughosh Ganu sughosh.ganu@linaro.org > --- > lib/strto.c | 35 +++++++++++++++++++---------------- > 1 file changed, 19 insertions(+), 16 deletions(-)
This is rather big growth when we didn't already have realloc: 05: lib: Convert str_to_list() to use alist aarch64: (for 1/1 boards) all +1765.0 rodata +37.0 text +1728.0 xilinx_versal_mini_emmc0: all +1765 rodata +37 text +1728 u-boot: add: 7/0, grow: 1/0 bytes: 1728/0 (1728) function old new delta realloc - 1120 +1120 alist_ensure_ptr - 140 +140 alist_expand_to - 136 +136 alist_init - 108 +108 alist_uninit_move_ptr - 76 +76 alist_add_ptr - 72 +72 alist_uninit - 48 +48 str_to_list 204 232 +28
I am working on an implementation of lmb maps using lists. The list nodes are then allocated with calloc, which I believe is included in most of the board images. We can then compare the size impact with the two implementations (alist vs list). Thanks.
I have worked on implementing the LMB maps using simple lists, and we do get a good size benefit with the list based implementation. I have used the script that was shared by Tom some time back to get the size impact [1]. The readings are with 1) alists with realloc 2) alist with malloc and 3) using linked list. These are on a RPI4 build, which has LMB enabled. I have checked the impact on a xilinx_versal_mini config as well, which does not have LMB enabled, and the size impact result is best with lists. The list based changes can be checked on my github [2].
Thanks for doing that. It is quite hard to read with the LTO enabled.
I don't think LTO is enabled there?
I ran the size checks with -L flag [1]. Do not see any difference.\
OK, thanks, as Tom says probably not actually enabled. It's just hard to compare two branches!
I took a look at the lmb thing and decided to write a few patches to show what I am getting at, particularly with the testing side. I will send those as an RFC...
Regards, Simon
-sughosh
[1] - https://gist.github.com/sughoshg/8a82946727904944601021a7ee732661