diff --git a/tools/funcslower.py b/tools/funcslower.py index 4b3798a0d2f8..22e69e48796b 100755 --- a/tools/funcslower.py +++ b/tools/funcslower.py @@ -172,9 +172,14 @@ #else page_offset = __PAGE_OFFSET_BASE_L4; #endif +#elif defined(__identity_base) + // s390 6.10 and later PAGE_OFFSET is not a constant and need + // to be read from the kernel adress space + bpf_probe_read_kernel(&page_offset, sizeof(PAGE_OFFSET), &PAGE_OFFSET); #else // earlier x86_64 kernels, e.g., 4.6, comes here - // arm64, s390, powerpc, x86_32 + // s390 before 6.10 + // arm64, powerpc, x86_32 page_offset = PAGE_OFFSET; #endif diff --git a/tools/profile.py b/tools/profile.py index 170becda21b9..56b7a74b9294 100755 --- a/tools/profile.py +++ b/tools/profile.py @@ -212,9 +212,14 @@ def stack_id_err(stack_id): #else page_offset = __PAGE_OFFSET_BASE_L4; #endif +#elif defined(__identity_base) + // s390 6.10 and later PAGE_OFFSET is not a constant and need + // to be read from the kernel adress space + bpf_probe_read_kernel(&page_offset, sizeof(PAGE_OFFSET), &PAGE_OFFSET); #else // earlier x86_64 kernels, e.g., 4.6, comes here - // arm64, s390, powerpc, x86_32 + // s390 before 6.10 + // arm64, powerpc, x86_32 page_offset = PAGE_OFFSET; #endif