{"push_id":1360233448,"size":19,"distinct_size":19,"ref":"refs/heads/feature-parallel-gc-final","head":"a5f2f207845ae8813e0d28fa3e5d6efb438f0df2","before":"1cc1babe1ccb8d25147c396481663f4b554bfe1d","commits":[{"sha":"4d38f87965a77bf337492339e15b9f8b70a9f263","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Parallel precleaning of los objects\n\nIn the future we should consider splitting large objects.","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/4d38f87965a77bf337492339e15b9f8b70a9f263"},{"sha":"c5cdf6587c0385dce7a7e174a47062142ad2dbcb","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Add free lists for each workers\n\nThese will be used for object allocation by the workers","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/c5cdf6587c0385dce7a7e174a47062142ad2dbcb"},{"sha":"b9b4c83bff69f705cc837c0fcd6d8bde4a550adf","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Add parallel copying infrastructure\n\nParallel copying should happen only when the world is stopped and the gc thread is not running. Each thread allocates from its own block freelist, which he obtains by pop-ing the global block free list.\n\nWhen a worker has to copy an object, it first allocates a new object in a major block (this object will potentially be enqueued at this step). After allocating this object it tries to forward the vtable, using a CAS operation. If the vtable contains already a forwarded object, we just return the forwarded address, and the object that we allocated will be left to die (we expect this case to be extremely unlikely, otherwise we could re-enque the free object in its block's freelist).\n\nAfter the copying is done, the caller has the duty to update references and mark the new object (which we have to do it also with a CAS).\n\nFIXME : This means that an object can reside on the gray queue without being marked, so another thread can enque again this same object. We should refactor this copying/mark/enqueing mechansim to avoid these issues.","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/b9b4c83bff69f705cc837c0fcd6d8bde4a550adf"},{"sha":"be96cb9d1944b0484fc90da485f99f07aeec3352","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Disable concurrent queue redirection\n\nWe used to support the case where workers are running and when the main gc thread populates the redirected gray queue, these queue sections are moved to the workers distribute gray queue from where they are distributed to all the workers. In order to simplify the process, the main gc thread should never do any relevant gc work concurrently with the workers. This means that we no longer need to handle the above case.","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/be96cb9d1944b0484fc90da485f99f07aeec3352"},{"sha":"485202206c0e13d3b8b092e76bb775dcf088f74f","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Use parallel workers when finishing concurrent collections","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/485202206c0e13d3b8b092e76bb775dcf088f74f"},{"sha":"ec15326e22b02b28072365a08b2a38b188516eba","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Remove unused function","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/ec15326e22b02b28072365a08b2a38b188516eba"},{"sha":"0a8aeb1c90e26e428d4a5805b4784da442ded230","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Support cementing from multiple workers","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/0a8aeb1c90e26e428d4a5805b4784da442ded230"},{"sha":"b4f2ec7cf804c8d11beb1954cc640428d3037969","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Default to parallel collector","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/b4f2ec7cf804c8d11beb1954cc640428d3037969"},{"sha":"f6c3d31eb2b45b4817d3b2116413a576da84666a","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Parallel mod union scan jobs","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/f6c3d31eb2b45b4817d3b2116413a576da84666a"},{"sha":"70448543ee35b63d71f0e9a0c45085c8be976614","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Debug scanned objects per worker","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/70448543ee35b63d71f0e9a0c45085c8be976614"},{"sha":"f2afa4728f059f270d71b819cec7ea966f018d7c","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Switch to nopar context when we are left with one worker\n\nNon-parallel context is significantly faster since it doesn't require CAS-ing. Use it when we are left with only one worker so we don't regress performance.","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/f2afa4728f059f270d71b819cec7ea966f018d7c"},{"sha":"684ba7043dab944c02df6c00e35ce486d009eaca","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Clean exit if we can't read binprot file due to unsupported version","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/684ba7043dab944c02df6c00e35ce486d009eaca"},{"sha":"572f3c6ec33929d5008c110f6c33be53e4dfcb91","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Add worker index to the binary protocol entries","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/572f3c6ec33929d5008c110f6c33be53e4dfcb91"},{"sha":"3643b778e368c29ab1b4eb23b1b53f8313046f8e","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[profiler] Fix vtune build","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/3643b778e368c29ab1b4eb23b1b53f8313046f8e"},{"sha":"6e7aecc305a121beda0900b3dd91a8229ddea501","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Proper job allocation","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/6e7aecc305a121beda0900b3dd91a8229ddea501"},{"sha":"f41f90a161d125b03f28fd7d47be65785cdd9c02","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Properly init the size of a new gray queue section\n\nTo avoid confusion","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/f41f90a161d125b03f28fd7d47be65785cdd9c02"},{"sha":"5568dfc4daedc90399c27e0586023f4a4184faeb","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Worker gray queue stealing and distribution","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/5568dfc4daedc90399c27e0586023f4a4184faeb"},{"sha":"8026cf07460ede6dbf976c185e205c172077dec9","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Use non-synchronized gray stack when only one worker is running","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/8026cf07460ede6dbf976c185e205c172077dec9"},{"sha":"a5f2f207845ae8813e0d28fa3e5d6efb438f0df2","author":{"name":"Vlad Brezae","email":"bc9118da5c58f241ee55774f6745f32f54daa59d@gmail.com"},"message":"[sgen] Always use one concurrent worker\n\nWe have the infrastructure to use multiple concurrent workers, but this could starve the mutator threads. In the future, we should consider using multiple concurrent workers.","distinct":true,"url":"https://api.github.com/repos/BrzVlad/mono/commits/a5f2f207845ae8813e0d28fa3e5d6efb438f0df2"}]}
{"actor":{"display_login":"BrzVlad"}}