Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2210882pxb; Sat, 23 Jan 2021 22:32:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJwt0xG0RdTl6M8bASRPH6gyNuBqaew7619x/k+0aS1sw+QygYiT8qXt4WJvaNIW/7Dy9x1y X-Received: by 2002:a17:906:b219:: with SMTP id p25mr2071969ejz.430.1611469971965; Sat, 23 Jan 2021 22:32:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611469971; cv=none; d=google.com; s=arc-20160816; b=UO2f6pe5jejTrt8frVSu2sTOanvF2klJX5scNV5pUHifYv00tAWJMo1XpDnVO3VJx2 /u5GIUtxge0ZkgqNpY5uoz537hqJqXwJYj7RtE5bUsRow4vKtkTDJfNXl2Ucq03je2xs dPPXbZ7rMzJmwgApIFwEVh6yksSunlDcMC5V4U5YTtJqQlXr7EmAtHjhtvAoKi2zWIhe 3ser+y8TKc2Xy5Jhx29lYI3XW5/H0nueXgjChF7xs85B2yPVdmqk1+lpDeN1AqdsVpNw Z7vmaKpyDBxMTJyHVJ3i+R7E9eUmTfnNdzYeBiliws3sL04nL1KHLJboUdM5qPZ3k376 q9pQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=jIVpeq5kegvRaAoYOBuB9PD/IsqDr9f7364Q5MAIY7M=; b=pXvD+7Z1T5xH4OGqn4SIX3+NWO9Evne/4oHKE66HxKiJXJDlMqyyypB0RUbbkuq7P0 elBj1wWKQvHN+lRYaf1VeyQMu5Od6b37tkToNtzRwNs/eOnGY4+SpC1NWd0AAl/zE0+J JBkz8S1yMDpOGk+twquKT0DJnD/trq0Gge27revfXAwwToi3JkMHomkLZ5rA7yZU8ETr 0pkCP+xXU4LawGp6FhSIhGfef3WesdZkRoJnRe4OP5RdWeND+KKNy/0fFDq8nu9In9tO /3JTLCqIxhheHRHfEBlGt4rw1FFHPLP6ugpdnKETHfJ6kAMG+B+WgMENVnbOgRW1kqCq 2HOQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v1si5680259edt.548.2021.01.23.22.32.28; Sat, 23 Jan 2021 22:32:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726530AbhAXGaO (ORCPT + 99 others); Sun, 24 Jan 2021 01:30:14 -0500 Received: from out30-133.freemail.mail.aliyun.com ([115.124.30.133]:48797 "EHLO out30-133.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726096AbhAXGaE (ORCPT ); Sun, 24 Jan 2021 01:30:04 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04426;MF=tianjia.zhang@linux.alibaba.com;NM=1;PH=DS;RN=13;SR=0;TI=SMTPD_---0UMf9apv_1611469748; Received: from localhost(mailfrom:tianjia.zhang@linux.alibaba.com fp:SMTPD_---0UMf9apv_1611469748) by smtp.aliyun-inc.com(127.0.0.1); Sun, 24 Jan 2021 14:29:08 +0800 From: Tianjia Zhang To: Jarkko Sakkinen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Sean Christopherson , Shuah Khan , x86@kernel.org, linux-sgx@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Jia Zhang Cc: Tianjia Zhang Subject: [PATCH v3 2/5] x86/sgx: Optimize the locking range in sgx_sanitize_section() Date: Sun, 24 Jan 2021 14:29:04 +0800 Message-Id: <20210124062907.88229-3-tianjia.zhang@linux.alibaba.com> X-Mailer: git-send-email 2.19.1.3.ge56e4f7 In-Reply-To: <20210124062907.88229-1-tianjia.zhang@linux.alibaba.com> References: <20210124062907.88229-1-tianjia.zhang@linux.alibaba.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The spin lock of sgx_epc_section only locks the page_list. The EREMOVE operation and init_laundry_list is not necessary in the protection range of the spin lock. This patch reduces the lock range of the spin lock in the function sgx_sanitize_section() and only protects the operation of the page_list. Suggested-by: Sean Christopherson Signed-off-by: Tianjia Zhang --- arch/x86/kernel/cpu/sgx/main.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c index c519fc5f6948..4465912174fd 100644 --- a/arch/x86/kernel/cpu/sgx/main.c +++ b/arch/x86/kernel/cpu/sgx/main.c @@ -41,20 +41,17 @@ static void sgx_sanitize_section(struct sgx_epc_section *section) if (kthread_should_stop()) return; - /* needed for access to ->page_list: */ - spin_lock(§ion->lock); - page = list_first_entry(§ion->init_laundry_list, struct sgx_epc_page, list); ret = __eremove(sgx_get_epc_virt_addr(page)); - if (!ret) + if (!ret) { + spin_lock(§ion->lock); list_move(&page->list, §ion->page_list); - else + spin_unlock(§ion->lock); + } else list_move_tail(&page->list, &dirty); - spin_unlock(§ion->lock); - cond_resched(); } -- 2.19.1.3.ge56e4f7