Commit 040efd1c authored by Jarkko Sakkinen's avatar Jarkko Sakkinen Committed by Shuah Khan
Browse files

selftests/sgx: Dump enclave memory map



Often, it's useful to check whether /proc/self/maps looks sane when
dealing with memory mapped objects, especially when they are JIT'ish
dynamically constructed objects. Therefore, dump "/dev/sgx_enclave"
matching lines from the memory map in FIXTURE_SETUP().

Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 235d1c9c
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -117,6 +117,8 @@ FIXTURE_SETUP(enclave)
	Elf64_Sym *sgx_enter_enclave_sym = NULL;
	struct vdso_symtab symtab;
	struct encl_segment *seg;
	char maps_line[256];
	FILE *maps_file;
	unsigned int i;
	void *addr;

@@ -167,6 +169,18 @@ FIXTURE_SETUP(enclave)
	memset(&self->run, 0, sizeof(self->run));
	self->run.tcs = self->encl.encl_base;

	maps_file = fopen("/proc/self/maps", "r");
	if (maps_file != NULL)  {
		while (fgets(maps_line, sizeof(maps_line), maps_file) != NULL) {
			maps_line[strlen(maps_line) - 1] = '\0';

			if (strstr(maps_line, "/dev/sgx_enclave"))
				TH_LOG("%s", maps_line);
		}

		fclose(maps_file);
	}

err:
	if (!sgx_enter_enclave_sym)
		encl_delete(&self->encl);