]> Cypherpunks.ru repositories - gostls13.git/commit
test: move allocation before munmap in recover4
authorMichael Hudson-Doyle <michael.hudson@canonical.com>
Wed, 16 Sep 2015 04:20:31 +0000 (16:20 +1200)
committerMichael Hudson-Doyle <michael.hudson@canonical.com>
Wed, 16 Sep 2015 08:51:48 +0000 (08:51 +0000)
commit955b4caa48feea19f53196daea29ee7cccce6e35
treee028c93560261bcc72b64aa77918ff0bb447c7c1
parent7c61d24f9738204688b1f4b880b0a8415d0833e3
test: move allocation before munmap in recover4

recover4 allocates 16 pages of memory via mmap, makes a 4 page hole in it with
munmap, allocates another 16 pages of memory via normal allocation and then
tries to copy from one to the other. For some reason on arm64 (but no other
platform I have tested) the second allocation sometimes causes the runtime to
ask the kernel for 4 additional pages of memory -- which the kernel satisfies
by remapping the pages that were just unmapped!

Moving the second allocation before the munmap fixes this behaviour, I can run
recover4 tens of thousands of times without failure with this fix vs a failure
rate of ~0.5% before.

Fixes #12549

Change-Id: I490b895b606897e4f7f25b1b51f5d485a366fffb
Reviewed-on: https://go-review.googlesource.com/14632
Reviewed-by: Dave Cheney <dave@cheney.net>
test/recover4.go