{"push_id":687232126,"size":63,"distinct_size":63,"ref":"refs/heads/master","head":"49e32207613902bfc91552d9dead68ed4274016b","before":"84b49ca4ee686b42496ddb010bf1dca9543b2370","commits":[{"sha":"dd803a6bca99281dd0bfa91469a8281684f9b0ef","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Follow-up bz#344936: Distinguish readlinkat tests for OS X platforms that do or do not support the readlinkat syscall.\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15265 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/dd803a6bca99281dd0bfa91469a8281684f9b0ef"},{"sha":"0528cf698205fd4912a5cef72feff534c32cb469","author":{"email":"bbbdd9057189c4ee422bb93be7625c8769f590ab@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"philippe"},"message":"Also compare keys before calling cmp in the hash table stats printing\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15268 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/0528cf698205fd4912a5cef72feff534c32cb469"},{"sha":"0cac6bc68afd4d917fb98e78adc48b492f4049f7","author":{"email":"73262ad0334ab37227b2f7a0205f51db1e606681@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"florian"},"message":"Remove an incorrect assertion. Need to consider SkShmC segments as well.\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15269 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/0cac6bc68afd4d917fb98e78adc48b492f4049f7"},{"sha":"00a208d88a962b899de5d693f1d5cec10af6001a","author":{"email":"73262ad0334ab37227b2f7a0205f51db1e606681@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"florian"},"message":"Comment only change.\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15270 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/00a208d88a962b899de5d693f1d5cec10af6001a"},{"sha":"44850e87b424e48cf91f5759a1b9ed994a0ecedf","author":{"email":"442bd8eb7b6ea1a04e35059cba7a2e80eb32ed1d@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"mjw"},"message":"Add procfs-non-linux.stderr.exp variants to EXTRA_DIST.\n\nFor bz#344936 procfs-non-linux.stderr.exp was renamed and split into\nprocfs-non-linux.stderr.exp-with-readlinkat and\nprocfs-non-linux.stderr.exp-without-readlinkat add both to EXTRA_DIST.\nFixes make post-regtest-checks.\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15271 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/44850e87b424e48cf91f5759a1b9ed994a0ecedf"},{"sha":"80eac81e8aadbb06a8bccce6c792e584cb73e6fc","author":{"email":"73262ad0334ab37227b2f7a0205f51db1e606681@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"florian"},"message":"Followup to 15270. Completely forgot about the double maintenance.\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15272 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/80eac81e8aadbb06a8bccce6c792e584cb73e6fc"},{"sha":"60b4ff5b1e653a4c1d9cdf71982d945a08ed1815","author":{"email":"c1ef41834a9fde814d74180f707866d24e883999@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"sewardj"},"message":"Fix bug 345126: Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT\nPatch from Hans Verkuil (hverkuil@xs4all.nl)\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15276 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/60b4ff5b1e653a4c1d9cdf71982d945a08ed1815"},{"sha":"9b7307928cd8bfdb9815b33b71382a4fba004ffd","author":{"email":"73262ad0334ab37227b2f7a0205f51db1e606681@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"florian"},"message":"Fix a comment. Do not enumerate segment kinds as all segments\nhave an extent ... including SkShmC segments.\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15278 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/9b7307928cd8bfdb9815b33b71382a4fba004ffd"},{"sha":"5c65cfa0dd16cfdb5bd8dd83e7b1177d03c36934","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Properly guard none/tests/amd64/*.vgtest on OS X for tests not compiled\nn-i-bz\n\nBefore:\n\n== 595 tests, 228 stderr failures, 23 stdout failures, 0 stderrB failure, 0 stdoutB failure, 30 post failures ==\n\nAfter:\n\n== 595 tests, 221 stderr failures, 16 stdout failures, 0 stderrB failure, 0 stdoutB failure, 30 post failures ==\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15279 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/5c65cfa0dd16cfdb5bd8dd83e7b1177d03c36934"},{"sha":"1d44b59d7e9e8cbc945cea6dc0159a667f6deb64","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Re-enable functioning none/tests/amd64/bug137714-amd64 on OS X\nn-i-bz\n\nBefore:\n\n== 588 tests, 221 stderr failures, 16 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==\n\nAfter:\n\n== 588 tests, 220 stderr failures, 15 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15280 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/1d44b59d7e9e8cbc945cea6dc0159a667f6deb64"},{"sha":"150aaf9c1063e1898af86a7c8497fc782ea710fe","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Unguard none/tests/x86/cse_fail on OS X, as the test completes. n-i-bz.\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15281 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/150aaf9c1063e1898af86a7c8497fc782ea710fe"},{"sha":"6ff71606cf0af7d2eb6cca9794566a61c1db0480","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Add (presently) failing test case for bz#234814.\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15282 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/6ff71606cf0af7d2eb6cca9794566a61c1db0480"},{"sha":"1c2b413b282739a4063e7e06396d3e1cbc7c482d","author":{"email":"bbbdd9057189c4ee422bb93be7625c8769f590ab@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"philippe"},"message":"Add stats in helgrind for oldref history found versus not found \n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15283 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/1c2b413b282739a4063e7e06396d3e1cbc7c482d"},{"sha":"41537f18bc90776994baccebb3862ac148bb2928","author":{"email":"bbbdd9057189c4ee422bb93be7625c8769f590ab@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"philippe"},"message":"helgrind stats: give the memory occupied by the OldRef\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15284 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/41537f18bc90776994baccebb3862ac148bb2928"},{"sha":"fa10b3bec3554ce2cb1679b3252fc8634fe0802e","author":{"email":"bbbdd9057189c4ee422bb93be7625c8769f590ab@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"philippe"},"message":"helgrind stats: show the total nr of thr_n_rcec\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15285 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/fa10b3bec3554ce2cb1679b3252fc8634fe0802e"},{"sha":"dada81f049e55f47919fc9d35cab8055e312753c","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Fix regression test added in r15282.\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15287 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/dada81f049e55f47919fc9d35cab8055e312753c"},{"sha":"6dbaa4ddf5fb703d3c7776437199c78b22dd0e3a","author":{"email":"0b3b315d08353e2046d43a86d41e3fd1dff3d6ad@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"rhyskidd"},"message":"Address clang compiler warnings on OS X.\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15288 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/6dbaa4ddf5fb703d3c7776437199c78b22dd0e3a"},{"sha":"e5cf56a0099a56cf014c7aed8a2781e5ef197728","author":{"email":"bbbdd9057189c4ee422bb93be7625c8769f590ab@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"philippe"},"message":"This patch decreases significantly the memory needed for OldRef and\nslightly increases the performance. It also moderately improves\nthe nr of cases where helgrind can provide the stack trace of the old\naccess (when using the same amount of memory for the OldRef entries).\nThe patch also provides a new helgrind monitor command to show\nthe recorded accesses for an address+len, and adds an optional argument\nlock_address to the monitor command 'info locks', to show the info\nabout just this lock.\n\nCurrently, oldref are maintained in a sparse WA, that points to N\nentries, as specified by --conflict-cache-size=N.\nFor each entry (associated to an address), we have the last 5 accesses.\n\nOld entries are recycled in an exact LRU order.\nBut inside an entry, we could have a recent access, and 4 very\nold accesses that are kept 'alive' by a single thread accessing\nrepetitively the address shared with the 4 other old entries.\n\n\nThe attached patch replaces the sparse WA that maintains the OldREf\nby an hash table.\nEach OldRef now also only maintains one single access for an address.\nAs an OldRef now maintains only one access, all the entries are now\nstrictly in LRU mode.\n\nMemory used for OldRef\n-----------------------\nFor the trunk, an OldRef has a size of 72 bytes (on 32 bits archs)\nmaintaining up to 5 accesses to the same address.\nOn 64 bits arch, an OldRef is 104 bytes.\n\nWith the patch, an OldRef has a size of 32 bytes (on 32 bits archs)\nor 56 bytes (on 64 bits archs).\n\nSo, for one single access, the new code needs (on 32 bits)\n32 bytes, while the trunk needs only 14.4 bytes.\nHowever, that is the worst case, assuming that the 5 entries in the\naccs array are all used.\nLooking on 2 big apps (one of them being firefox), we see that\nwe have very few OldRef entries that have the 5 entries occupied.\nOn a firefox startup, of the 5x1,000,000 accesses, we only have\n1,406,939 accesses that are used.\nSo, in average, the trunk uses in reality around 52 bytes per access.\n\nThe default value for --conflict-cache-size has been doubled to 2000000.\nThis ensures that the memory used for the OldRef is more or less the\nsame as the trunk (104Mb for OldRef entries).\n\nMemory used for sparseWA versus hashtable\n-----------------------------------------\nLooking on 2 big apps (one of them being firefox), we see that\nthere are big variations on the size of the WA : it can go in a few\nseconds from 10MB to 250MB, or can decrease back to 10 MB.\nThis all depends where the last N accesses were done: if well localised,\nthe WA will be small.\nIf the last N accesses were distributed over a big address space,\nthen the WA will be big: the last level of WA (the biggest memory consumer)\nuses slightly more than 1KB (2KB on 64 bits) for each '256 bytes' memory\nzone where there is an oldref. So, in the worst case, on 32 bits, we\nneed > 1_000_000_000 sparseWA memory to keep 1_000_000 OldRef.\n\nThe hash table has between 1 to 2 Word overhead per OldRef\n(as the chain array is +- doubled each time the hash table is full).\nSo, unless the OldRef are extremely localised, the overhead of the\nhash table will be significantly less.\n\nWith the patch, the core arena total alloc is:\n  5299535/1201448632 totalloc-blocks/bytes\nThe trunk is\n  6693111/3959050280 totalloc-blocks/bytes\n(so, around 1.20Gb versus 3.95Gb).\nThis big difference is due to the fact that the sparseWA repetitively\nallocates then frees Level0 or LevelN when OldRef in the region covered\nby the Level0/N have all been recycled.\n\nIn terms of CPU\n---------------\nWith the patch, on amd64, a firefox startup seems slightly faster (around 1%).\nThe peak memory mmaped/used decreases by 200Mb.\nFor a libreoffice test, the memory decreases by 230Mb. CPU also decreases\nslightly (1%).\n\n\nIn terms of correctness:\n-----------------------\nThe trunk could potentially show not the most recent access\nto the memory of a race : the first OldRef entry matching the raced upon\naddress was used, while we could have a more recent access in a following\nOldRef entry. In other words, the trunk only guaranteed to find the\nmost recent access in an OldRef, but not between the several OldRef that\ncould cover the raced upon address.\nSo, assuming it is important to show the most recent access, this patch\nensures we really show the most recent access, even in presence of overlapping\naccesses.\n\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15289 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/e5cf56a0099a56cf014c7aed8a2781e5ef197728"},{"sha":"36396d3e63bcdd51e9d7f46b6ca29137b7879a2d","author":{"email":"bbbdd9057189c4ee422bb93be7625c8769f590ab@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"philippe"},"message":"Some platforms such as x86 and amd64 have efficient unaligned access.\nOn these platforms, implement read_/write_<type> by doing a direct\naccess, rather than calling a function that will read or write\n'byte per byte'.\n\nFor platforms that do not have efficient unaligned access,\nor that do not support at all unaligned access, call function\n  readUAS_/writeUAS_<type> that works as before.\n\nCurrently, direct acecss is activated only for x86 and amd64.\nUnclear what other platforms support (efficiently) unaligned access.\n\nOn unwind intensive code (such as perf/memrw on amd64), this patch\ngives up to 5% improvement.\n\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15290 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/36396d3e63bcdd51e9d7f46b6ca29137b7879a2d"},{"sha":"200f3b191a9486446ba788cb7132228f1e472385","author":{"email":"73262ad0334ab37227b2f7a0205f51db1e606681@a5019735-40e9-0310-863c-91ae7b9d1cf9","name":"florian"},"message":"Remove dependency on bash. Fixes BZ #347978.\n\n\ngit-svn-id: svn://svn.valgrind.org/valgrind/trunk@15291 a5019735-40e9-0310-863c-91ae7b9d1cf9","distinct":true,"url":"https://api.github.com/repos/jvesely/valgrind/commits/200f3b191a9486446ba788cb7132228f1e472385"}]}