intel / intel/confidential-computing.sgx

Memory Fault/Segmentation Fault occurs inside Gramine because of Intel SGX

Open
#856 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
1.5k
Forks
565
PR merge metrics
No merged PRs in 30d

Description

Unexpected memory fault has occurred because of Intel SGX when the test is run with Ubuntu 21.10 and 5.18.0-051800-generic

Test:-
1. https://github.com/gramineproject/examples/tree/master/r
gramine-sgx ./R --slave --vanilla -f scripts/R-benchmark-25.R
2. https://github.com/gramineproject/gramine/blob/master/LibOS/test/regression/test_libos.py#L225

I initially got this error

> sudo dmesg | grep sgx
> [80353.686042] sgx_encl_get_backing+0x49/0x120
> [80353.686046] sgx_reclaim_pages+0x16c/0x4d0
> [80353.686072] ? __sgx_encl_add_page+0x7b/0x250
> [80353.686075] ? __sgx_alloc_epc_page_from_node+0x7c/0x80
> [80353.686078] sgx_alloc_epc_page+0x9c/0xd0
> [80353.686080] sgx_encl_add_page+0x96/0x480
> [80353.686083] sgx_ioc_enclave_add_pages+0x17a/0x210
> [80353.686089] sgx_ioctl+0x148/0x250
> [80589.981740] WARNING: CPU: 7 PID: 247386 at arch/x86/kernel/cpu/sgx/encl.c:81 __sgx_encl_eldu+0x340/0x3d0
> [80589.981850] RIP: 0010:__sgx_encl_eldu+0x340/0x3d0
> [80589.981870] sgx_encl_eldu+0x3f/0xd0
> [80589.981872] sgx_encl_load_page+0x7e/0xc0
> [80589.981873] sgx_vma_fault+0x44/0x100
> [80728.120928] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [80728.120936] CPU: 6 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [80728.120992] sgx_encl_get_backing+0x76/0x120
> [80728.120995] sgx_reclaim_pages+0x16c/0x4d0
> [80728.121002] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [80728.121004] ksgxd+0x102/0x1d0
> [82643.111745] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [82643.111752] CPU: 1 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [82643.111791] sgx_encl_get_backing+0x49/0x120
> [82643.111794] sgx_reclaim_pages+0x16c/0x4d0
> [82643.111798] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [82643.111799] ksgxd+0x102/0x1d0
> [82668.203156] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [82668.203162] CPU: 4 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [82668.203204] sgx_encl_get_backing+0x49/0x120
> [82668.203206] sgx_reclaim_pages+0x16c/0x4d0
> [82668.203210] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [82668.203211] ksgxd+0x102/0x1d0
> [335168.501542] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [335168.501549] CPU: 2 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [335168.501591] sgx_encl_get_backing+0x49/0x120
> [335168.501594] sgx_reclaim_pages+0x16c/0x4d0
> [335168.501598] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [335168.501599] ksgxd+0x102/0x1d0
> [335193.949470] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [335193.949477] CPU: 2 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [335193.949520] sgx_encl_get_backing+0x49/0x120
> [335193.949523] sgx_reclaim_pages+0x16c/0x4d0
> [335193.949527] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [335193.949528] ksgxd+0x102/0x1d0
> [479334.847997] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [479334.848004] CPU: 3 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [479334.848049] sgx_encl_get_backing+0x76/0x120
> [479334.848052] sgx_reclaim_pages+0x16c/0x4d0
> [479334.848056] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [479334.848057] ksgxd+0x102/0x1d0
> [479335.530641] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [479335.530649] CPU: 5 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [479335.530701] sgx_encl_get_backing+0x49/0x120
> [479335.530704] sgx_reclaim_pages+0x16c/0x4d0
> [479335.530716] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [479335.530719] ksgxd+0x102/0x1d0
> [479346.756039] ? sgx_encl_add_page+0x41/0x480
> [479346.756042] ? sgx_encl_add_page+0x41/0x480
> [479346.756047] ? sgx_encl_add_page+0x41/0x480
> [479346.756052] sgx_encl_add_page+0x41/0x480
> [479346.756054] sgx_ioc_enclave_add_pages+0x17a/0x210
> [479346.756062] sgx_ioctl+0x148/0x250
> [479360.114807] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [479360.114814] CPU: 4 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [479360.114856] sgx_encl_get_backing+0x49/0x120
> [479360.114858] sgx_reclaim_pages+0x16c/0x4d0
> [479360.114862] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [479360.114863] ksgxd+0x102/0x1d0

But then i rebooted and clear page caches and memory and the test still fails

> sudo dmesg | grep sgx
> [ 1.026989] sgx: EPC section 0x30180000-0x3bd7ffff
> [ 225.418584] WARNING: CPU: 0 PID: 3039 at arch/x86/kernel/cpu/sgx/encl.c:81 __sgx_encl_eldu+0x340/0x3d0
> [ 225.418689] RIP: 0010:__sgx_encl_eldu+0x340/0x3d0
> [ 225.418706] ? __sgx_alloc_epc_page_from_node+0x5e/0x80
> [ 225.418709] sgx_encl_eldu+0x3f/0xd0
> [ 225.418710] sgx_encl_load_page+0x7e/0xc0
> [ 225.418712] sgx_vma_fault+0x44/0x100
>

Attached dmesg.log
[dmesg.log](https://github.com/intel/linux-sgx/files/8955095/dmesg.log)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.