TencentOS-kernel/arch/x86/kernel/cpu/sgx
Fuhai Wang d8c6333085 sgx: fix softlockup when sgx_encl_release
error log:
 watchdog: BUG: soft lockup - CPU#32 stuck for 21s! [pal-sgx:37428]
 Modules linked in: veth xt_conntrack xt_MASQUERADE nf_conntrack_netlink nft_counter xt_addrtype nft_compat nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 overlay edac_core crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper virtio_balloon nf_tables nfnetlink sunrpc sch_fq_codel binfmt_misc ip_tables crc32c_intel virtio_net sr_mod net_failover failover cdrom floppy autofs4
 CPU: 32 PID: 37428 Comm: pal-sgx Kdump: loaded Tainted: G             L    5.4.119-1-tlinux4-0006 #1
 Hardware name: Smdbmds KVM, BIOS seabios-1.9.1-qemu-project.org 04/01/2014
 RIP: 0010:native_queued_spin_lock_slowpath+0x1a/0x1d0
 Code: bc ff ff ff 5e 5a 5d c3 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 8b 05 64 78 b5 01 48 89 e5 85 c0 7e 19 ba 01 00 00 00 8b 07 <85> c0 75 0a f0 0f b1 17 85 c0 75 f2 5d c3 f3 90 eb ec 81 fe 00 01
 RSP: 0018:ffffc90018267cf8 EFLAGS: 00000202 ORIG_RAX: ffffffffffffff13
 RAX: 0000000000000001 RBX: ffffc935ac5816e0 RCX: 0000000000000000
 RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffffffff83117240
 RBP: ffffc90018267cf8 R08: 0000000000000003 R09: 0000000000177799
 R10: ffff88ad59cf15c0 R11: 0000000000000001 R12: ffffffff83117240
 R13: ffff88adb82f0040 R14: ffffffffffffffff R15: 0000000000000000
 FS:  0000000000000000(0000) GS:ffff88e996840000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00007f481e8e7ff8 CR3: 00000031729ba001 CR4: 0000000000370ee0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
 Call Trace:
 _raw_spin_lock+0x1f/0x30
 sgx_unmark_page_reclaimable+0x22/0x90
 sgx_encl_release+0x75/0x1d0
 sgx_release+0xe6/0x100
 __fput+0xbb/0x250
 ____fput+0xe/0x10
 task_work_run+0x91/0xb0
 do_exit+0x39c/0xb90
 ? kick_process+0x3d/0x40
 ? signal_wake_up_state+0x28/0x30
 do_group_exit+0x43/0xb0
 __x64_sys_exit_group+0x18/0x20
 do_syscall_64+0x5a/0x170
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Signed-off-by: Fuhai Wang <fuhaiwang@tencent.com>
2021-09-10 17:07:18 +08:00
..
Makefile x86/sgx: Add SGX_IOC_ENCLAVE_CREATE 2021-07-12 08:56:46 +00:00
arch.h x86/sgx: Add SGX architectural data structures 2021-07-12 08:56:46 +00:00
driver.c Intel: x86/sgx: Maintain encl->refcount for each encl->mm_list entry 2021-07-12 08:56:46 +00:00
driver.h x86/sgx: Add SGX_IOC_ENCLAVE_PROVISION 2021-07-12 08:56:46 +00:00
encl.c sgx: fix softlockup when sgx_encl_release 2021-09-10 17:07:18 +08:00
encl.h x86/sgx: Add a page reclaimer 2021-07-12 08:56:46 +00:00
encls.h x86/sgx: Add wrappers for ENCLS functions 2021-07-12 08:56:46 +00:00
ioctl.c x86/sgx: Return -EINVAL on a zero length buffer in sgx_ioc_enclave_add_pages() 2021-07-12 08:56:46 +00:00
main.c Intel: x86/sgx: Fix the return type of sgx_init() 2021-07-12 08:56:46 +00:00
sgx.h x86/sgx: Clarify 'laundry_list' locking 2021-07-12 08:56:46 +00:00