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 DED1BC6FA91 for ; Fri, 23 Sep 2022 00:58:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 413A894000B; Thu, 22 Sep 2022 20:58:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C36D940007; Thu, 22 Sep 2022 20:58:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2639E94000B; Thu, 22 Sep 2022 20:58:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 15998940007 for ; Thu, 22 Sep 2022 20:58:23 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id E3E761A0368 for ; Fri, 23 Sep 2022 00:58:22 +0000 (UTC) X-FDA: 79941539244.06.D6C8960 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by imf24.hostedemail.com (Postfix) with ESMTP id D15F5180004 for ; Fri, 23 Sep 2022 00:58:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663894702; x=1695430702; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=Ml+yVLdWFYzsyDqjZioBXvGBweEy273hCGRMNDKeVO8=; b=b3vObVIiIJiDQcSkDcHo1rie+bO9swIf5UIQrjhahPAP3PSEmwPknxsI J5dQOb9LqBCoxz47xQ3FFg57Za056gxEKL40pYy8jX6z4WdjmPHR7OMyG Rc+vFPQcmSmJ4JDvCzQe3ilsq1Xwpn/D8JC21xImXswyEO1xm/4Utf0KN YbzmzSumM5fAIbPhwPp54RbK/LA7BWBHWIkAgPJbK+umeKl25/PKqsa7u KfD8E4GnxJf0AtMalD2iPduNTou1xvdppjwJSlDQvj49m6GRoTYHdS7aQ Yb9+ODB8SR+0RJu1Wzwb5oazpM1VBQQk3XntFcXJftewAzHGG6mZm1PMG w==; X-IronPort-AV: E=McAfee;i="6500,9779,10478"; a="301354830" X-IronPort-AV: E=Sophos;i="5.93,337,1654585200"; d="scan'208";a="301354830" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2022 17:58:20 -0700 X-IronPort-AV: E=Sophos;i="5.93,337,1654585200"; d="scan'208";a="615437441" Received: from dnessim-mobl1.ger.corp.intel.com (HELO box.shutemov.name) ([10.252.60.183]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2022 17:58:10 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id 5F4F01044E2; Fri, 23 Sep 2022 03:58:08 +0300 (+03) Date: Fri, 23 Sep 2022 03:58:08 +0300 From: "Kirill A . Shutemov" To: Paolo Bonzini , Sean Christopherson , David Hildenbrand Cc: Chao Peng , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, linux-doc@vger.kernel.org, qemu-devel@nongnu.org, Jonathan Corbet , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , 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 , luto@kernel.org, jun.nakajima@intel.com, dave.hansen@intel.com, ak@linux.intel.com, aarcange@redhat.com, ddutile@redhat.com, dhildenb@redhat.com, Quentin Perret , Michael Roth , mhocko@suse.com, Muchun Song , wei.w.wang@intel.com Subject: Re: [PATCH v8 1/8] mm/memfd: Introduce userspace inaccessible memfd Message-ID: <20220923005808.vfltoecttoatgw5o@box.shutemov.name> References: <20220915142913.2213336-1-chao.p.peng@linux.intel.com> <20220915142913.2213336-2-chao.p.peng@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663894702; a=rsa-sha256; cv=none; b=i4ibif5e+LjiDn9TeSTj29hAbCOnmYwkPvwA2LKqZDQjp8TKCNkL36D5WKlNtey44DGYsK sDzC5k1N+ehwdPglMz4wascGsVVjOJNe4u4OF9GdunAlC9dPOwSkvzwtGvQfS5WFlaQnqs 5XVgAgLChUVLGdEUvAM4NaxnFNf4whs= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=b3vObVIi; spf=none (imf24.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.24) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=fail reason="No valid SPF" header.from=intel.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663894702; h=from:from:sender: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=leOtOv11DUD3tfz4spgx1J/lUxgfb7XkT/QMzQe7W8c=; b=f/4F7S/Uqv1tQpRflBopbbhQ2rGoAK+HufZtXqupSO0zCKrO9Df1phcyY+F6AFbljCzkT3 wNpB1D2BeGtdIpajZDmVEQiWyfhj5Hvxk0bglMAl2sYX1bTycz5MbOY0dRgaisJQJ35uFi GwuYqQz88yMHu89k7tl4afSfpUSKrA0= X-Stat-Signature: j6squsznfywc6kta48per3o5md4cxn6p X-Rspamd-Queue-Id: D15F5180004 X-Rspam-User: X-Rspamd-Server: rspam11 Authentication-Results: imf24.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=b3vObVIi; spf=none (imf24.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.24) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=fail reason="No valid SPF" header.from=intel.com (policy=none) X-HE-Tag: 1663894701-520897 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: On Mon, Sep 19, 2022 at 11:12:46AM +0200, David Hildenbrand wrote: > > diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h > > index 6325d1d0e90f..9d066be3d7e8 100644 > > --- a/include/uapi/linux/magic.h > > +++ b/include/uapi/linux/magic.h > > @@ -101,5 +101,6 @@ > > #define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */ > > #define DEVMEM_MAGIC 0x454d444d /* "DMEM" */ > > #define SECRETMEM_MAGIC 0x5345434d /* "SECM" */ > > +#define INACCESSIBLE_MAGIC 0x494e4143 /* "INAC" */ > > > [...] > > > + > > +int inaccessible_get_pfn(struct file *file, pgoff_t offset, pfn_t *pfn, > > + int *order) > > +{ > > + struct inaccessible_data *data = file->f_mapping->private_data; > > + struct file *memfd = data->memfd; > > + struct page *page; > > + int ret; > > + > > + ret = shmem_getpage(file_inode(memfd), offset, &page, SGP_WRITE); > > + if (ret) > > + return ret; > > + > > + *pfn = page_to_pfn_t(page); > > + *order = thp_order(compound_head(page)); > > + SetPageUptodate(page); > > + unlock_page(page); > > + > > + return 0; > > +} > > +EXPORT_SYMBOL_GPL(inaccessible_get_pfn); > > + > > +void inaccessible_put_pfn(struct file *file, pfn_t pfn) > > +{ > > + struct page *page = pfn_t_to_page(pfn); > > + > > + if (WARN_ON_ONCE(!page)) > > + return; > > + > > + put_page(page); > > +} > > +EXPORT_SYMBOL_GPL(inaccessible_put_pfn); > > Sorry, I missed your reply regarding get/put interface. > > https://lore.kernel.org/linux-mm/20220810092532.GD862421@chaop.bj.intel.com/ > > "We have a design assumption that somedays this can even support non-page > based backing stores." > > As long as there is no such user in sight (especially how to get the memfd > from even allocating such memory which will require bigger changes), I > prefer to keep it simple here and work on pages/folios. No need to > over-complicate it for now. Sean, Paolo , what is your take on this? Do you have conrete use case of pageless backend for the mechanism in sight? Maybe DAX? -- Kiryl Shutsemau / Kirill A. Shutemov