Received: by 2002:a05:7412:98c1:b0:fa:551:50a7 with SMTP id kc1csp292029rdb; Fri, 5 Jan 2024 09:57:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IHm/eM1uScIZoi+9vYGzKmXKqNUqKrLyZIZ1zWDLfr3a31wuP8Clsjv0UISAan4m6DjLyGM X-Received: by 2002:a81:5c55:0:b0:5e7:57df:6341 with SMTP id q82-20020a815c55000000b005e757df6341mr2539002ywb.38.1704477440842; Fri, 05 Jan 2024 09:57:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704477440; cv=none; d=google.com; s=arc-20160816; b=R1Uuf3q2q/qsDfIIyiYp0S/fFQouxgH0WCZ422mnQg3DhR9NIYeDWZJzy9cM1GaLBy l7aiB9yQAl2RszuUMmlYnQ6rQmDLasZwLAzBfD8xcFRzY4V70LEE+P1QsASXAFoD7OMx PpT18OPpRrlR+/ABx+eYUVFUVc88P/5o2F+k5rjSpF/w6oORZXUitk5efIrQqw0oo3XE bHet3fqRTohlOemJRkJ7m85FvrF63YAbf2Sphl7BGBLKE+msmvBOAK2imwlkjYCC6oza Q5bV9zwX4kB8kLVgVRVr0U6phrYO43GbiLOCbAubiyqnbC1dZuwHu9gdsFEzj8EvKg2r S00Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=KB25bkd5TyVgVV/61Bn4CyTL32TI2jZ1XmlUWbfQu1Y=; fh=VUCrNrdMdcsjdbl5L5OFUxJ6khl+R5ccI//CsUqwLjc=; b=Eoj7RKcRO/Fhzf1Al5uC+W+Jf3K/2F55GOyJVJYXBKm1w4ph1ETzpDmaFNH99ed3vf KRY8XTS6u8VjcOQEgfFkPgSE2yaofjHt5YZPUO1IMFXRtnMScosYVQ6a/C0yv/mx5KxP I/QcGLw13CRwYWMtoXLskIRlWFRjFb8ZONmibFmi7iOrKwQdft/JKFYq4IrxLCzPFVRf aYsPIkDhNIV1vzrwHmv2IyjqcXJlGN8o4j1AbPejLSpxJoxjz0SDHBOZmV1xAoa3ly3f eS5favYmIVb1hrkUh58Ge2N4ptKpTmu1U4xaPRigA7/Dg+Er+BJIb1e5jH8W841/cOlq CzOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QZhkoUoO; spf=pass (google.com: domain of linux-kernel+bounces-18155-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-18155-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id c13-20020a0cf2cd000000b0067f6be08ef2si2262303qvm.41.2024.01.05.09.57.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jan 2024 09:57:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-18155-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QZhkoUoO; spf=pass (google.com: domain of linux-kernel+bounces-18155-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-18155-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 970651C23587 for ; Fri, 5 Jan 2024 17:57:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 158CC3454A; Fri, 5 Jan 2024 17:57:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="QZhkoUoO" X-Original-To: linux-kernel@vger.kernel.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ACE05328CA; Fri, 5 Jan 2024 17:57:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1704477426; x=1736013426; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=1MT2jTPeBSJ57twgUkjXstNbDoV/TaGJIBY2sv5XpsU=; b=QZhkoUoOjgWRC7KVJyevieaKM19lUiuF9R4wMeg7GF+Z+gVEx+ooBUkJ 14LubKR3o5hL6ojJscMXTrnVbTu1nrZLyh5faIDLK2xty62aGaX+zuKV5 H8tf/J1Jb+HyWoFuT7l5gwz6fU9Fyj8nuLftNMCIyUfMFk3e3FyNXbQ8h 2VamarkBckd4SER3zyjZXidPioyY9r3xeSNh4vEq3tQSJBiUExIYBiQ1N cRzrs9euAb9OT/i4kb0N4fw9kDNlZX+kuW8lFxvPeT6Z73vnKGOG552fR r3S7GylxfNBokKoFHsY01AS5iRpr+XV+sP8yOhQWuOqiQepLd9LIrFKEJ A==; X-IronPort-AV: E=McAfee;i="6600,9927,10944"; a="382526872" X-IronPort-AV: E=Sophos;i="6.04,334,1695711600"; d="scan'208";a="382526872" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2024 09:57:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10944"; a="924276110" X-IronPort-AV: E=Sophos;i="6.04,334,1695711600"; d="scan'208";a="924276110" Received: from sbidasar-mobl.amr.corp.intel.com (HELO [10.209.42.45]) ([10.209.42.45]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2024 09:57:04 -0800 Message-ID: <0f3ae753-031f-4f33-b577-8c863b4621a1@intel.com> Date: Fri, 5 Jan 2024 09:57:03 -0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 07/12] x86/sgx: Introduce EPC page states Content-Language: en-US To: Haitao Huang , jarkko@kernel.org, dave.hansen@linux.intel.com, tj@kernel.org, mkoutny@suse.com, linux-kernel@vger.kernel.org, linux-sgx@vger.kernel.org, x86@kernel.org, cgroups@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, sohil.mehta@intel.com Cc: zhiquan1.li@intel.com, kristen@linux.intel.com, seanjc@google.com, zhanb@microsoft.com, anakrish@microsoft.com, mikko.ylinen@linux.intel.com, yangjie@microsoft.com, Sean Christopherson References: <20231030182013.40086-1-haitao.huang@linux.intel.com> <20231030182013.40086-8-haitao.huang@linux.intel.com> From: Dave Hansen Autocrypt: addr=dave.hansen@intel.com; keydata= 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 In-Reply-To: <20231030182013.40086-8-haitao.huang@linux.intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 10/30/23 11:20, Haitao Huang wrote: > @@ -527,16 +530,13 @@ void sgx_mark_page_reclaimable(struct sgx_epc_page *page) > int sgx_unmark_page_reclaimable(struct sgx_epc_page *page) > { > spin_lock(&sgx_global_lru.lock); > - if (page->flags & SGX_EPC_PAGE_RECLAIMER_TRACKED) { > - /* The page is being reclaimed. */ > - if (list_empty(&page->list)) { > - spin_unlock(&sgx_global_lru.lock); > - return -EBUSY; > - } > - > - list_del(&page->list); > - page->flags &= ~SGX_EPC_PAGE_RECLAIMER_TRACKED; > + if (sgx_epc_page_reclaim_in_progress(page->flags)) { > + spin_unlock(&sgx_global_lru.lock); > + return -EBUSY; > } > + > + list_del(&page->list); > + sgx_epc_page_reset_state(page); I want to know how much if this series is basically line-for-line abstraction shifting like: - page->flags &= ~SGX_EPC_PAGE_RECLAIMER_TRACKED; + sgx_epc_page_reset_state(page); versus actually adding complexity. That way, I might be able to offer some advice on where this can be pared down. That's really hard to do with the current series. Please don't just "introduce new page states". This should have first abstracted out the sgx_epc_page_reclaim_in_progress() operation, using the list_empty() check as the implementation. Then, in a separate patch, introduce the concept of the "reclaim in progress" flag and finally flip the implementation over. Ditto for the sgx_epc_page_reset_state() abstraction. It should have been introduced separately as a concept and then have the implementation changed. On in to patch 10 (which is much too big) which introduces the sgx_lru_list() abstraction.