{"push_id":2390397292,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"9d4d9ec2930258f2a50afabaa5fa4563bdc02a8b","before":"4ec320005d71267a0a2e7ed6ef6436d1982567f2","commits":[{"sha":"9d4d9ec2930258f2a50afabaa5fa4563bdc02a8b","author":{"name":"Kostya Kortchinsky","email":"ecb97bf0eab1cca862b5d1e4e6172f5f65cda27c@google.com"},"message":"[sanitizer] Align & pad the allocator structures to the cacheline size\n\nSummary:\nBoth `SizeClassInfo` structures for the 32-bit primary & `RegionInfo`\nstructures for the 64-bit primary can be used by different threads, and as such\nthey should be aligned & padded to the cacheline size to avoid false sharing.\nThe former was padded but the array was not aligned, the latter was not padded\nbut we lucked up as the size of the structure was 192 bytes, and aligned by\nthe properties of `mmap`.\n\nI plan on adding a couple of fields to the `RegionInfo`, and some highly\nthreaded tests pointed out that without proper padding & alignment, performance\nwas getting a hit - and it is going away with proper padding.\n\nThis patch makes sure that we are properly padded & aligned for both. I used\na template to avoid padding if the size is already a multiple of the cacheline\nsize. There might be a better way to do this, I am open to suggestions.\n\nReviewers: alekseyshl, dvyukov\n\nReviewed By: alekseyshl\n\nSubscribers: kubamracek, delcypher, #sanitizers, llvm-commits\n\nDifferential Revision: https://reviews.llvm.org/D44261","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project-submodule/commits/9d4d9ec2930258f2a50afabaa5fa4563bdc02a8b"}]}
{"actor":{"display_login":"chapuni"}}