Immediately mark memory as DONOTNEED to drop references
diff --git a/arm/kvm.c b/arm/kvm.c
index 80893f7..4502f60 100644
--- a/arm/kvm.c
+++ b/arm/kvm.c
@@ -128,6 +128,7 @@
 
 		die_perror("kernel read");
 	}
+	madvise(pos, file_size, MADV_DONTNEED);
 
 	kernel_size = kvm__arch_get_kernel_size(kvm);
 	if (!kernel_size || kernel_size < (u64)file_size)
@@ -182,6 +183,7 @@
 
 			die_perror("initrd read");
 		}
+		madvise(pos, file_size, MADV_DONTNEED);
 
 		kvm->arch.initrd_guest_start = initrd_start;
 		kvm->arch.initrd_size = file_size;
@@ -240,6 +242,7 @@
 	fw_sz = read_file(fd, host_pos, limit - host_pos);
 	if (fw_sz < 0)
 		die("failed to load firmware");
+	madvise(host_pos, fw_sz, MADV_DONTNEED);
 	close(fd);
 
 	/* Kernel isn't loaded by kvm, point start address to firmware */