From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5618DC6FA9E for ; Fri, 24 Feb 2023 05:50:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9DA0C6B0072; Fri, 24 Feb 2023 00:50:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 989226B0073; Fri, 24 Feb 2023 00:50:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 851A36B0074; Fri, 24 Feb 2023 00:50:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 75D336B0072 for ; Fri, 24 Feb 2023 00:50:52 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 315B5A143E for ; Fri, 24 Feb 2023 05:50:52 +0000 (UTC) X-FDA: 80501111544.16.3E4E1E2 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by imf13.hostedemail.com (Postfix) with ESMTP id A582F2000B for ; Fri, 24 Feb 2023 05:50:48 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=WQD9LAca; spf=none (imf13.hostedemail.com: domain of chao.p.peng@linux.intel.com has no SPF policy when checking 192.55.52.43) smtp.mailfrom=chao.p.peng@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677217849; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=d3NFTFrzvpLk0T0p5+BzNXQyhZ0/Mgjs1UPfXbTzZzs=; b=zV28tEIwar+hzvYbMsmq+fPbpAxuzrA0cq+3Jks4S6Bz4dQEBsPARP5irAFbnZD5yVofGf ZKl+VfNgwsbwrjU0UY7AdDYiK2rwtQGVlu8HRMXWIw0R5xzMXA/5E0UMLLawyDoWElfaWD hpj+neWc1iAjN3tkZlxfyMPt4PQcsCQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=WQD9LAca; spf=none (imf13.hostedemail.com: domain of chao.p.peng@linux.intel.com has no SPF policy when checking 192.55.52.43) smtp.mailfrom=chao.p.peng@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677217849; a=rsa-sha256; cv=none; b=GRKU9dooQbIrwuukMDMBGdN20kKXamkNIczQge6Hm1XI+RBO0dPR2Nyoz1XPce3Ia3x8kk 5stD+MzNT94XqDJVKTzGq3YDimd1pA/YeMWc9Jdojd2S6NyrU5P/GgtIoHh1+CkH+vHTjp cc/LEQLL+Aw10AlwM8pkbffIBJ9rgnU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677217848; x=1708753848; h=date:from:to:cc:subject:message-id:reply-to:references: mime-version:in-reply-to; bh=V5pIfvtAVZdi4oFKptzL072SqpQseaciK4VwcTkzV+I=; b=WQD9LAca1F1k01xV3XTIHRpv+7lLId72yXqAouCPq3T9g6w4iHXUAnCq YUPSBy+rH4tHhSIOOj4yyLW/cONR87TtAyXxu7z4yMCOGr9/CCWhHKura uIbtsOtjGvg545U2+YcM9ntnR6G46pziusoIifeeUX49uobHomRWof9tD 7kZc9I4PRLFrzU7D9U1sijknOJzDjUY6suEslw2HWV9XGIkih/mL2LR4j a8e6W/Gu0/poG5uAjYQEclmrTww9lpJ3G7QveJvrGw5PWcMP8wtuvODY/ U7vwibrttJqe5Wnad3prj8tkMUpdqEj56U8YN++zuLqKxtd9YSKkaxIXU w==; X-IronPort-AV: E=McAfee;i="6500,9779,10630"; a="419636450" X-IronPort-AV: E=Sophos;i="5.97,322,1669104000"; d="scan'208";a="419636450" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2023 21:50:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10630"; a="741550783" X-IronPort-AV: E=Sophos;i="5.97,322,1669104000"; d="scan'208";a="741550783" Received: from chaop.bj.intel.com (HELO localhost) ([10.240.192.105]) by fmsmga004.fm.intel.com with ESMTP; 23 Feb 2023 21:50:36 -0800 Date: Fri, 24 Feb 2023 13:42:56 +0800 From: Chao Peng To: Alexey Kardashevskiy Cc: Sean Christopherson , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, linux-doc@vger.kernel.org, qemu-devel@nongnu.org, Paolo Bonzini , Jonathan Corbet , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Arnd Bergmann , Naoya Horiguchi , Miaohe Lin , x86@kernel.org, "H . Peter Anvin" , Hugh Dickins , Jeff Layton , "J . Bruce Fields" , Andrew Morton , Shuah Khan , Mike Rapoport , Steven Price , "Maciej S . Szmigiero" , Vlastimil Babka , Vishal Annapurve , Yu Zhang , "Kirill A . Shutemov" , luto@kernel.org, jun.nakajima@intel.com, dave.hansen@intel.com, ak@linux.intel.com, david@redhat.com, aarcange@redhat.com, ddutile@redhat.com, dhildenb@redhat.com, Quentin Perret , tabba@google.com, Michael Roth , mhocko@suse.com, wei.w.wang@intel.com Subject: Re: [PATCH v10 1/9] mm: Introduce memfd_restricted system call to create restricted user memory Message-ID: <20230224054256.GA1701111@chaop.bj.intel.com> Reply-To: Chao Peng References: <20221202061347.1070246-1-chao.p.peng@linux.intel.com> <20221202061347.1070246-2-chao.p.peng@linux.intel.com> <7555a235-76be-abf5-075a-80dbe6f1ea8e@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7555a235-76be-abf5-075a-80dbe6f1ea8e@amd.com> X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: A582F2000B X-Stat-Signature: huajd5irp6c8wohr5axzjcaf8e3eqe6k X-Rspam-User: X-HE-Tag: 1677217848-935468 X-HE-Meta: U2FsdGVkX1/AY6O55HwH36iFunziK4vkBKsXE8dzzpmLwgC+GNyzVPutPWqxM9iA+KqTYdXKIr44xwKwjK+6zoDVplbXA5pst/1GicIvCl+xeSyYEojorZosZd5sLITfKO2fv1GnF47iFb6KtwIKbk97bk/fQzGrytSjffYrgUIVzazD6J3kpJzgTK7tDyp/pidxHvDMIgvRF1vq/QWElF6cKXZFNI2WG6nagahv5Ny9+HKWAvfMP0n/NjliGHsaAXqkyfuK8DllaJNEv+wizPDIELz2eG6FwUO/OyO4VV6RdEYxa+2I/nD98S3/LDWieuUdDiR/+SgRA9k2vJ0FTJEHooHX5StlRCSZ7f8BN8kC1qgql8q4IMPyQESeAO1ZjzdWuVB1czBWXQ59yoaUjTc/ygsNxflmmZDKMGtv/AqQHBuVpUYQqC786XwBluP6+9FtNCi9B8Bz+2puArkvtKR4RDlexZcN9rn3AbdzIlXQkcIjZRpn6XmOs9lROhzdCZcHEpNTHAOGvYSFRhfId08PLcGYyVg1CWCJEQ9FP3RgouhUW5w+oYVnbMJmYXWYtt8n7O0EOHGThM7NgUMNEtZuhRnLw0BYs+w8g0pq0kPxs6roIzWqFUxpS4nfpVAISkH9VIO/pNR7bhLf3CJgB91bf8b49DHeBCqu5JsmSacYfaIJMghZI/VS2JEWdQ5ZBQNk5VUR6IwnElb46NyP33SMtXhjRVZuAn/Kpw8jB28CQpZmaWB2e8n+jEwUUfwhQi47eR67/uqgfJIvnd1IS9ubpbswrll3V7I4isMq0W25sijyaZlrJsiPLy0QYl8CkdnFJ31bNP5bu6Y4axjbz/8VbZ6G0+VaPLRbVORytpxOGjbblSJeZ1Pb48897SxXCLnnUwQux3choMebw1ezrlPJ+j/9rv73tFWikzCo3QOs27DpRWU5C/BxkpdMr9wp9Xl09NuVt8mb3scyvVJ g0zVD1H8 ZnJJzBbV8vhH03DaYVsLb6hLD+dxnNKgASDagwipS+3/hPL9UEcU0RJaG6JhhfPfYs0LnyqVX8L7fLc0iaY72YQ04y0xTBas5LCRMlPyLd5gxLp+c3A1KMKoQM/sXG9kV5pmk2xsnuX3UFR1iRrPaiyA8VW5vXpVeepUQRPTdd1Tr3hg07zb2hU5orCXOWb6C76Mhmk5rieLUAfZWigSTO5csWnEXckyge+S26O/8Fz86tL+xxbdXS34o+cl30OYTMbaLPSQz0GKLBibhfCMK8Z9FcqrU78LKdeKuUnUrdr7BuKs= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: > > int restrictedmem_bind(struct file *file, pgoff_t start, pgoff_t end, > > struct restrictedmem_notifier *notifier, bool exclusive) > > { > > struct restrictedmem *rm = file->f_mapping->private_data; > > int ret = -EINVAL; > > > > down_write(&rm->lock); > > > > /* Non-exclusive mappings are not yet implemented. */ > > if (!exclusive) > > goto out_unlock; > > > > if (!xa_empty(&rm->bindings)) { > > if (exclusive != rm->exclusive) > > goto out_unlock; > > > > if (exclusive && xa_find(&rm->bindings, &start, end, XA_PRESENT)) > > goto out_unlock; > > } > > > > xa_store_range(&rm->bindings, start, end, notifier, GFP_KERNEL); > > > || ld: mm/restrictedmem.o: in function `restrictedmem_bind': > mm/restrictedmem.c|295| undefined reference to `xa_store_range' Right, xa_store_range() is only available for XARRAY_MULTI. > > > This is missing: > === > diff --git a/mm/Kconfig b/mm/Kconfig > index f952d0172080..03aca542c0da 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -1087,6 +1087,7 @@ config SECRETMEM > config RESTRICTEDMEM > bool > depends on TMPFS > + select XARRAY_MULTI > === > > Thanks, > > > > > rm->exclusive = exclusive; > > ret = 0; > > out_unlock: > > up_write(&rm->lock); > > return ret; > > } > > EXPORT_SYMBOL_GPL(restrictedmem_bind); > > > > void restrictedmem_unbind(struct file *file, pgoff_t start, pgoff_t end, > > struct restrictedmem_notifier *notifier) > > { > > struct restrictedmem *rm = file->f_mapping->private_data; > > > > down_write(&rm->lock); > > xa_store_range(&rm->bindings, start, end, NULL, GFP_KERNEL); > > synchronize_rcu(); > > up_write(&rm->lock); > > } > > EXPORT_SYMBOL_GPL(restrictedmem_unbind); > > -- > Alexey