Skip to content

TRT/Pixel/SCT Overlay.cxx reserve the vectors in copyCollection

TRT/Pixel/SCT Overlay.cxx reserve the vectors in copyCollection

Due to these (_M_realloc_insert)

                                                                                
 1464 6998732 calls to allocation functions with 2.71M peak consumption from          
 1465 __gnu_cxx::new_allocator<>::allocate(unsigned long, void const*)                
 1466   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/ext/new_allocator.h:127
 1467   in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-07T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libInDetOverlay.so
 1468 std::allocator_traits<>::allocate(std::allocator<>&, unsigned long)             
 1469   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/alloc_traits.h:460
 1470 std::_Vector_base<>::_M_allocate(unsigned long)                                 
 1471   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/stl_vector.h:346
 1472 void std::vector<>::_M_realloc_insert<>(__gnu_cxx::__normal_iterator<>, TRT_RDORawData* const&)
 1473   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/vector.tcc:440
 1474 2316375 calls with 951.84K peak consumption from:                               
 1475     std::vector<>::push_back(TRT_RDORawData* const&)                            
 1476       at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/stl_vector.h:1198
 1477       in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-07T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libInDetOverlay.so
 1478     DataVector<>::push_back(TRT_RDORawData*)                                    
 1479       at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/Control/AthContainers/AthContainers/DataVector.icc:2864
 1480     std::unique_ptr<> Overlay::copyCollection<>(IdentifierHash const&, InDetRawDataCollection<> const*)
 1481       at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetRawAlgs/InDetOverlay/src/TRTOverlay.cxx:45
                                                                               
 3248 3406184 calls to allocation functions with 2.03M peak consumption from          
 3249 __gnu_cxx::new_allocator<>::allocate(unsigned long, void const*)                
 3250   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/ext/new_allocator.h:127
 3251   in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-07T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libInDetOverlay.so
 3252 std::allocator_traits<>::allocate(std::allocator<>&, unsigned long)             
 3253   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/alloc_traits.h:460
 3254 std::_Vector_base<>::_M_allocate(unsigned long)                                 
 3255   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/stl_vector.h:346
 3256 void std::vector<>::_M_realloc_insert<>(__gnu_cxx::__normal_iterator<>, SCT_RDORawData* const&)
 3257   at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/vector.tcc:440
 3258 1653305 calls with 815.65K peak consumption from:                               
 3259     std::vector<>::push_back(SCT_RDORawData* const&)                            
 3260       at /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/include/c++/11.2.0/bits/stl_vector.h:1198
 3261       in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-07T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libInDetOverlay.so
 3262     DataVector<>::push_back(SCT_RDORawData*)                                    
 3263       at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/Control/AthContainers/AthContainers/DataVector.icc:2864
 3264     std::unique_ptr<> Overlay::copyCollection<>(IdentifierHash const&, InDetRawDataCollection<> const*)
 3265       at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetRawAlgs/InDetOverlay/src/SCTOverlay.cxx:32

ping @tadej @jchapman

Perhaps the real question for num of allocation is if we really really need to deep copy these ?

i.e do we need OWN as now or could live with VIEW ?

I would assume they have to be deep copies but if not there is a significant gain to be had in number of new .

The inputs actually is what I think we POOL ed last week so the deep copy is not nice also in this respect .

Edited by Christos Anastopoulos

Merge request reports