%global git_user google %global git_date 20150309 %global git_hash afcff5d Name: rowhammer-test # Note: I emailed the upstream mailing list on 09-MAR-2015 asking # about version number of eventual release. In the absence of any # upstream guidance, I'm presently using 0.1 for the version # number. In the unlikely event that upstream later provides a release # with a version number less than 0.1, the package epoch would need to # be bumped. Version: 0.1 Release: 0.1.%{git_date}git%{git_hash}%{?dist} Summary: Program for testing for the DRAM rowhammer problem License: ASL 2.0 URL: https://github.com/%{git_user}/%{name} Source0: https://github.com/%{git_user}/%{name}/tarball/%{git_hash}/%{name}-%{git_hash}.tar.gz # The rowhammer-test program depends on the x86-only clflush instruction. ExclusiveArch: %{ix86} x86_64 %description The rowhammer-test program tests a system for the rowhammer problem with some DRAM memory, in which repeated accessing a row of memory can flip bits in adjacent rows. The rowhammer problem is described by Yoongu Jim et al's paper, "Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors" (http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf). Warning #1: This code is provided as-is. You are responsible for protecting yourself, your property and data, and others from any risks caused by this code. This code may cause unexpected and undesirable behavior to occur on your machine. This code may not detect the vulnerability on your machine. Be careful not to run this test on machines that contain important data. On machines that are susceptible to the rowhammer problem, this test could cause bit flips that crash the machine, or worse, cause bit flips in data that gets written back to disc. Warning #2: If you find that a computer is susceptible to the rowhammer problem, you may want to avoid using it as a multi-user system. Bit flips caused by row hammering breach the CPU's memory protection. On a machine that is susceptible to the rowhammer problem, one process can corrupt pages used by other processes or by the kernel. %prep %setup -q -n %{git_user}-%{name}-%{git_hash} %build # Note that there's only a single compile, and make isn't used, so # smp_mflags is irrelevant CFLAGS="%{optflags}" ./make.sh %install install -d -m 755 %{buildroot}%{_sbindir} install -p -m 755 rowhammer_test %{buildroot}%{_sbindir} %files %license LICENSE-2.0.txt %doc README.md %{_sbindir}/rowhammer_test # Note: I emailed the upstream mailing list on 09-MAR-2015 about the # lack of a man page. %changelog * Mon Mar 09 2015 Eric Smith - 0.1-0.1.20150309gitafcff5d - initial version