From 28bbbe43906eaf1b1ac79d69d0522f33f8722278 Mon Sep 17 00:00:00 2001 From: Tim Newsham Date: Tue, 10 Mar 2015 13:28:00 -1000 Subject: [PATCH 1/2] - remove volatile to eliminate extra memory references in the hammer loop, and remove sleep to do more work faster. --- double_sided_rowhammer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/double_sided_rowhammer.cc b/double_sided_rowhammer.cc index c54ecb3..0296117 100644 --- a/double_sided_rowhammer.cc +++ b/double_sided_rowhammer.cc @@ -195,7 +195,7 @@ uint64_t HammerAddressesStandard( uint64_t number_of_reads) { uint64_t* first_pointer = reinterpret_cast(first_range.first); uint64_t* second_pointer = reinterpret_cast(second_range.first); - volatile uint64_t sum = 0; + uint64_t sum = 0; while (number_of_reads-- > 0) { sum += first_pointer[0]; @@ -272,7 +272,7 @@ uint64_t HammerAllReachablePages(uint64_t presumed_row_size, memset(target_page, 0xFF, 0x1000); } // Test sleep code to see how this affects the distribution. - sleep(1); + //sleep(1); // Now hammer the two pages we care about. std::pair first_page_range( reinterpret_cast(first_row_page), From 1f8b273147466ad158308cf9a3c4c7fb3003cb8c Mon Sep 17 00:00:00 2001 From: Tim Newsham Date: Tue, 10 Mar 2015 13:28:36 -1000 Subject: [PATCH 2/2] - provide a build rule for double hammer --- make.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/make.sh b/make.sh index 2a49c83..ffc40b0 100755 --- a/make.sh +++ b/make.sh @@ -17,3 +17,4 @@ set -eu g++ -g -Wall -Werror -O2 rowhammer_test.cc -o rowhammer_test +g++ -g --std=c++11 -Wall -O2 double_sided_rowhammer.cc -o double_sided_rowhammer