Re: [PATCH dwarves v2 07/10] btf_encoder: introduce btf_encoding_context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2024-12-16 at 18:39 -0800, Eduard Zingerman wrote:
> On Fri, 2024-12-13 at 22:37 +0000, Ihor Solodrai wrote:
> > Introduce a static struct holding global data necessary for BTF
> > encoding: elf_functions tables and btf_encoder structs.
> > 
> > The context has init()/exit() interface that should be used to
> > indicate when BTF encoding work has started and ended.
> > 
> > I considered freeing everything contained in the context exclusively
> > on exit(), however it turns out this unnecessarily increases max
> > RSS. Probably because the work done in btf_encoder__encode() requires
> > relatively more memory, and if encoders and tables are freed earlier,
> > that space is reused.
> > 
> > Compare:
> >     -j4: 	Maximum resident set size (kbytes): 868484
> >     -j8: 	Maximum resident set size (kbytes): 1003040
> >     -j16: 	Maximum resident set size (kbytes): 1039416
> >     -j32: 	Maximum resident set size (kbytes): 1145312
> > vs
> >     -j4: 	Maximum resident set size (kbytes): 972692
> >     -j8: 	Maximum resident set size (kbytes): 1043184
> >     -j16: 	Maximum resident set size (kbytes): 1081156
> >     -j32: 	Maximum resident set size (kbytes): 1218184
> > 
> > Signed-off-by: Ihor Solodrai <ihor.solodrai@xxxxx>
> > ---
> 
> After patch #10 "dwarf_loader: multithreading with a job/worker model"
> from this series I do not understand why this patch is necessary.
> After patch #10 there is only one BTF encoder, thus:
> - there is no need to track btf_encoder_list;
> - elf_functions_list can now be a part of the encoder;
> - it should be possible to forgo global variable for encoder
>   and pass it as a parameter for each btf_encoder__* func.
> 
> So it seems that this patch should be dropped and replaced by one that
> follows patch #10 and applies the above simplifications.
> Wdyt?

Meaning that patch #6 "btf_encoder: switch to shared elf_functions table"
is not necessary. Strictly speaking, patches 1,2,4 might not be necessary
as well, but could be viewed as a refactoring.
Switch to single-threaded BTF encoder significantly changes this patch-set.






[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux