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 86E57EB64DC for ; Tue, 18 Jul 2023 16:27:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 135FE8D0010; Tue, 18 Jul 2023 12:27:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E6898D0001; Tue, 18 Jul 2023 12:27:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF03D8D0010; Tue, 18 Jul 2023 12:27:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id DB4848D0001 for ; Tue, 18 Jul 2023 12:27:19 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 7EBB81C8BE2 for ; Tue, 18 Jul 2023 16:27:19 +0000 (UTC) X-FDA: 81025262598.23.0DD5517 Received: from mail-yb1-f179.google.com (mail-yb1-f179.google.com [209.85.219.179]) by imf08.hostedemail.com (Postfix) with ESMTP id 9E9FA160006 for ; Tue, 18 Jul 2023 16:27:17 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=sI4xtAxB; spf=pass (imf08.hostedemail.com: domain of surenb@google.com designates 209.85.219.179 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689697637; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=O+kFV4CgFXwX/++MDXSYQbrUjp9WPDdU4nbKcMxTPNk=; b=52/btGu6I3yMLnAVDp1Rlu95NhEEpOOvEgVQmHkVrg3gtCn8OKroZuyhUkgTR2xIvi+DJJ FoJGVreXEOAjUWDwCtT4md0UvUpMcvsho4vCHL6Rd9/Fz6Gyvp0nM0+Imop6kV5hCp1Alr B0CXnM1YKrKzZjcVc0n9cXt8MiCaWFU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689697637; a=rsa-sha256; cv=none; b=MZ55NhKM0u5wuO7JV0tVys9d4QpxFqlZFdS/ezdrTEUkVYUeFoolhnRjCAe0pyNa1yhgr1 aJecM1xnDPA+GpO38kiHSY/y+Kkh/BWficJl27XmIbClWXhDNJ18zBw+i2c9tqCEmZ8FTl n3WXjWljdVZjGrCRfbiuJTOMMA4QSug= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=sI4xtAxB; spf=pass (imf08.hostedemail.com: domain of surenb@google.com designates 209.85.219.179 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f179.google.com with SMTP id 3f1490d57ef6-c84fd44593aso6083286276.0 for ; Tue, 18 Jul 2023 09:27:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689697636; x=1692289636; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=O+kFV4CgFXwX/++MDXSYQbrUjp9WPDdU4nbKcMxTPNk=; b=sI4xtAxB+wLru4D30hQ4zcrtDXEtYBVVT18AscEc3XZkQ0sb46J4Ci2oEDZ0U1zg/9 qAGKByPA+2mWU/gV6StWj3nnfYv38n/nJWixHY9CiAZZabKh6Kx/Y9f8yiYoNeUBnS1Y QuXeR81s7opt72fMjci+8quEdWxZ+kB2qqM5M7Y1LvfyIdleXnkaKfDoMES/kSx0XCjn EAXoUQphnSSWra6OL+Px1GTQ6a+tnhclAAeXslhaU3P5cgMNUC9TLDCQAkTEuOrYhQET AZj1/rcOUNWXD+8/1/GsqOP8ojU9+ULOxPjcXOjlJcHpdROGD1p5gEUddHklUnZ+8qvn BVQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689697636; x=1692289636; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O+kFV4CgFXwX/++MDXSYQbrUjp9WPDdU4nbKcMxTPNk=; b=eNbDM4qFBbb6y/+LjOk/N7Lqqs8khHs1E5Kjzyq9AgqkzohKeSgqsP4aDDpWPG1Dty PQtia+aLbmHm30/DPM498lG3q1C9pV+cp5Es50RRu+MUKlQNZyZWY4VHhpPfx6Do60mI v2Fey0xa8getghcmlzRM2h6JeoeNu8ZdARUuSSzaspHnP4nextcIeshzRAT2UgwuubPE 0fHC3SOGRmBLvEEKwPYcVqtK5THVmUMervGDjWdtK9piXbAkTZKhq6M7j/PvSmfMeA9q QN4Y1OPjHhmVb8mTn1h8o2XHfBhnxcuqqoHMwL29kY2YcUSmMlO0/+URN2ozN7J2u78u gmKQ== X-Gm-Message-State: ABy/qLb4LxZ0mvlkTEU/xvYzRG+DcXRXaozk7TbShuh0aYH0ssSMwXgi JxS0VAp9so4/kizcZ03ROw7EefPRdNJgFT5mS8Rskw== X-Google-Smtp-Source: APBJJlHR7OeV/vKyQ3A8S1gNAnQHUt4+VSYJ5WyapxACIF2Tc1ZFS10UTtxGqnl9TiHLpN4I/NoYW6QOf08xjB8gH5w= X-Received: by 2002:a25:aaf2:0:b0:c6e:ee9e:7567 with SMTP id t105-20020a25aaf2000000b00c6eee9e7567mr346998ybi.29.1689697636326; Tue, 18 Jul 2023 09:27:16 -0700 (PDT) MIME-Version: 1.0 References: <331201b2-5f13-8e81-b5d4-b17f8784d498@redhat.com> In-Reply-To: From: Suren Baghdasaryan Date: Tue, 18 Jul 2023 09:27:05 -0700 Message-ID: Subject: Re: [bug report] mm: replace vma->vm_flags direct modifications with modifier calls To: Yan Zhao Cc: David Hildenbrand , Matthew Wilcox , Dan Carpenter , linux-mm@kvack.org, Andrew Morton , "Liam R. Howlett" , Laurent Dufour , Michel Lespinasse , Jerome Glisse , Michal Hocko , Vlastimil Babka , Johannes Weiner , Peter Xu , Dimitri Sivanich , Mike Travis , Steve Wahl Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: sidqhbw8zfkf845g7ofc1gznw95my4bx X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 9E9FA160006 X-Rspam-User: X-HE-Tag: 1689697637-841914 X-HE-Meta: U2FsdGVkX18Kibyjd7PYHzm2s+2LErWa7Q762rYpkzxrI/YR5nk4LbUiWdJh7OY4ctsEglDs3dsSK12wCXMTtTW5EFVC7e0JXy58sRwf8fui9WghJ3vD+slvi5YNB3owemu9JASi7qbO8o0dTg4uvzi0Pzdfz7KToyWQlR1ryBBctm0O3BbnGMIqzOl9hXitlmlft14rhYsB28KpmkHBzMTeIRbSrmLRPrDPb+firG1Jgd4DxxzC/zLIvrs1hRAXyr3jg718OjSaPES+lPXbLixo1gn/fAPIY2RxupdvrnYkbhFZmkjrH0LgjQP5my2cjERAZ67XbKjvWeEqX8b4FOK6Sq9YDgZFGkZ8JsEAz4OrpKzrlYhGAn3qsb2XnpGD6popUTxArouwQYB12fSdk+FikmE7V1lPC0/hXCqWdEUVr2pqoEPiaa72yQ2WASyI9CdRKtVHGQOCHvWUPY9EkEue4m0dGj2S5ZM5GGckNOm13L40eP3Ch/5zlnuD4AWXimFSsOhIv57M047WiYAp84Jbc9EVZz+iC5XS67k52B7QwKevoKAhowIDfMQ45aMX/OPw8+NAxIQJHKC4ncA1mLld/UNpdBNcbHSTSJRwLGZoyybdMISTbKqoweCf1rOD0B7BGvdtWGiRop82IJm2WE2beC19P+LdLWXE4NkJ+0OX26b41YasjP5fY75CADHUE8jIV+D+Fu+Z9wTk8E72b8NU+FL8XFncLffP4/6RHIpH5jT9+lzJAmJUUfuklKm6/FJ3kXk4dgDVw/+OdB+CwZkweoa9sKVzDCgiwPLymWE+CggTLDieONomYr5w6rISswiDlsObYSPtJ9fvAi0BEZRFzjVD/n5Bp6ZVBcfun1vXPJ2CjdTJ4HoLmyHQ1tQSR5Ct3dEycn3YLs6gQ3iYEer6qFnalLbWQg5Dea5SzexqNm5k2c9Pbo7nMz3ZxvU9JGgVGh8XVuFQtELo/x4 K5GRoNhf WsPNIO4zrOGThZBMvWCE/+TbbMBHAtVW+U/0V5afyH/D15YkJP3gDo+hzwWsCTL88RXPM/gxATyoqKYbBWeHdtfX+dQij1G76d5h9qZOUML1GeE9gfg7z/UkrnssJMRpCEg4F9SyqDgOqd/ku6fYTJZpy5FBNjTpXdqdLhiEIEUU5hmg45U4Wy9boMRPAHgosqkSlJhnnhPdCtPh9Lk02TgjGvzOYpWJK3RJAUYxICoqp/2XKbIn4n6BnaqYgbaEpmSc1pCY1pkbSL0exWLeWkvXkJZ25+YCK3ZGwp+ovmRTPIoM= 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, Jul 17, 2023 at 5:54=E2=80=AFPM Yan Zhao wro= te: > > On Mon, Jul 17, 2023 at 09:18:34AM -0700, Suren Baghdasaryan wrote: > > On Sun, Jul 16, 2023 at 11:40=E2=80=AFPM Yan Zhao wrote: > > > > > > On Wed, Jul 12, 2023 at 07:48:06PM +0000, Suren Baghdasaryan wrote: > > > > > Would we be able to fix it in stable simply by not triggering the > > > > > vm_flags_set() in case these flags are already set? > > > > > > > > I think we can do that. gru_file_mmap() sets all the flags that are > > > > set by remap_pfn_range_notrack() (VM_IO | VM_PFNMAP | VM_DONTEXPAND= | > > > > VM_DONTDUMP), so we can check if all bits are already present and s= kip > > > > the vm_flags_set() call. > > > > > > > But on x86, remap_pfn_range() also sets flag VM_PAT. (in track_pfn_re= map()). > > > > > > Is there any interface to allow device driver to pre-set this flag in= .mmap() > > > before .fault()? e.g. export track_pfn_remap() ? > > > > Driver should be able to call vm_flags_set() in its .mmap(). > > Do you mean do something like this in .mmap()? > > flags =3D VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; > #ifdef CONFIG_X86 > flags |=3D VM_PAT; > #endif > vm_flags_set(vma, flags); > > But VM_PAT cannot be set until after a successful reserve_pfn_range(), > which function is again not exported. I see. Let's wait for Matthew's fix and see what it looks like first. Maybe we can backport it directly instead of using alternatives.