DmT021 wrote:

> I was playing with the performance in a couple of different scenarios. For 
> some reason that I haven't looked into, we're getting less parallelism when 
> many of the binaries are in the shared cache in lldb. Maybe there is locking 
> around the code which finds the binary in lldb's own shared cache, so when 9 
> threads try to do it at the same time, we have additional lock contention.

There is a lock_guard for `shared_module_list.m_modules_mutex` at the beginning 
of `ModuleList::GetSharedModule`. I instrumented loading Slack and that 
lock_guard is responsible for about 7% of the total time. Most of the time is 
spent on constructing ConstString.
Here's a flame graph. It's captured with "Record Waiting Threads" enabled so 
the locks are visible.
[lldb_parallel.svg.zip](https://github.com/user-attachments/files/17337125/lldb_parallel.svg.zip)



https://github.com/llvm/llvm-project/pull/110439
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to