From: Andrea Arcangeli <aarcange@redhat.com> To: Minchan Kim <minchan@kernel.org> Cc: "Kirill A. Shutemov" <kirill@shutemov.name>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>, Vineet Gupta <vgupta@synopsys.com>, Russell King <linux@armlinux.org.uk>, Will Deacon <will.deacon@arm.com>, Catalin Marinas <catalin.marinas@arm.com>, Ralf Baechle <ralf@linux-mips.org>, "David S. Miller" <davem@davemloft.net>, "Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>, Martin Schwidefsky <schwidefsky@de.ibm.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv2 3/3] mm: Use updated pmdp_invalidate() inteface to track dirty/accessed bits Date: Fri, 16 Jun 2017 16:27:20 +0200 [thread overview] Message-ID: <20170616142720.GH11676@redhat.com> (raw) In-Reply-To: <20170616135209.GA29542@bbox> Hello Minchan, On Fri, Jun 16, 2017 at 10:52:09PM +0900, Minchan Kim wrote: > > > > @@ -1995,8 +1984,6 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd, > > > > if (soft_dirty) > > > > entry = pte_mksoft_dirty(entry); > > > > } > > > > - if (dirty) > > > > - SetPageDirty(page + i); > > > > pte = pte_offset_map(&_pmd, addr); [..] > > split_huge_page set PG_dirty to all subpages unconditionally? > If it's true, yes, it doesn't break MADV_FREE. However, I didn't spot > that piece of code. What I found one is just __split_huge_page_tail > which set PG_dirty to subpage if head page is dirty. IOW, if the head > page is not dirty, tail page will be clean, too. > Could you point out what routine set PG_dirty to all subpages unconditionally? On a side note the snippet deleted above was useless, as long as there's one left hugepmd to split, the physical page has to be still compound and huge and as long as that's the case the tail pages PG_dirty bit is meaningless (even if set, it's going to be clobbered during the physical split). In short PG_dirty is only meaningful in the head as long as it's compound. The physical split in __split_huge_page_tail transfer the head value to the tails like you mentioned, that's all as far as I can tell.
WARNING: multiple messages have this Message-ID (diff)
From: Andrea Arcangeli <aarcange@redhat.com> To: Minchan Kim <minchan@kernel.org> Cc: "Kirill A. Shutemov" <kirill@shutemov.name>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>, Vineet Gupta <vgupta@synopsys.com>, Russell King <linux@armlinux.org.uk>, Will Deacon <will.deacon@arm.com>, Catalin Marinas <catalin.marinas@arm.com>, Ralf Baechle <ralf@linux-mips.org>, "David S. Miller" <davem@davemloft.net>, "Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>, Martin Schwidefsky <schwidefsky@de.ibm.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv2 3/3] mm: Use updated pmdp_invalidate() inteface to track dirty/accessed bits Date: Fri, 16 Jun 2017 16:27:20 +0200 [thread overview] Message-ID: <20170616142720.GH11676@redhat.com> (raw) In-Reply-To: <20170616135209.GA29542@bbox> Hello Minchan, On Fri, Jun 16, 2017 at 10:52:09PM +0900, Minchan Kim wrote: > > > > @@ -1995,8 +1984,6 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd, > > > > if (soft_dirty) > > > > entry = pte_mksoft_dirty(entry); > > > > } > > > > - if (dirty) > > > > - SetPageDirty(page + i); > > > > pte = pte_offset_map(&_pmd, addr); [..] > > split_huge_page set PG_dirty to all subpages unconditionally? > If it's true, yes, it doesn't break MADV_FREE. However, I didn't spot > that piece of code. What I found one is just __split_huge_page_tail > which set PG_dirty to subpage if head page is dirty. IOW, if the head > page is not dirty, tail page will be clean, too. > Could you point out what routine set PG_dirty to all subpages unconditionally? On a side note the snippet deleted above was useless, as long as there's one left hugepmd to split, the physical page has to be still compound and huge and as long as that's the case the tail pages PG_dirty bit is meaningless (even if set, it's going to be clobbered during the physical split). In short PG_dirty is only meaningful in the head as long as it's compound. The physical split in __split_huge_page_tail transfer the head value to the tails like you mentioned, that's all as far as I can tell. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-06-16 14:27 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-06-15 14:52 [HELP-NEEDED, PATCHv2 0/3] Do not loose dirty bit on THP pages Kirill A. Shutemov 2017-06-15 14:52 ` Kirill A. Shutemov 2017-06-15 14:52 ` [PATCHv2 1/3] x86/mm: Provide pmdp_establish() helper Kirill A. Shutemov 2017-06-15 14:52 ` Kirill A. Shutemov 2017-06-16 13:36 ` Andrea Arcangeli 2017-06-16 13:36 ` Andrea Arcangeli 2017-06-19 12:46 ` Kirill A. Shutemov 2017-06-19 12:46 ` Kirill A. Shutemov 2017-06-19 5:48 ` Martin Schwidefsky 2017-06-19 5:48 ` Martin Schwidefsky 2017-06-19 5:48 ` Martin Schwidefsky 2017-06-19 5:48 ` Martin Schwidefsky 2017-06-19 12:48 ` Kirill A. Shutemov 2017-06-19 12:48 ` Kirill A. Shutemov 2017-06-19 13:04 ` Martin Schwidefsky 2017-06-19 13:04 ` Martin Schwidefsky 2017-06-19 15:22 ` Catalin Marinas 2017-06-19 15:22 ` Catalin Marinas 2017-06-19 16:00 ` Kirill A. Shutemov 2017-06-19 16:00 ` Kirill A. Shutemov 2017-06-19 17:09 ` Catalin Marinas 2017-06-19 17:09 ` Catalin Marinas 2017-06-19 21:52 ` Kirill A. Shutemov 2017-06-19 21:52 ` Kirill A. Shutemov 2017-06-20 15:54 ` Catalin Marinas 2017-06-20 15:54 ` Catalin Marinas 2017-06-21 9:53 ` Kirill A. Shutemov 2017-06-21 9:53 ` Kirill A. Shutemov 2017-06-21 10:40 ` Catalin Marinas 2017-06-21 10:40 ` Catalin Marinas 2017-06-21 11:27 ` Catalin Marinas 2017-06-21 11:27 ` Catalin Marinas 2017-06-21 12:04 ` Kirill A. Shutemov 2017-06-21 12:04 ` Kirill A. Shutemov 2017-06-21 15:49 ` Vineet Gupta 2017-06-21 15:49 ` Vineet Gupta 2017-06-21 17:15 ` Kirill A. Shutemov 2017-06-21 17:15 ` Kirill A. Shutemov 2017-06-21 17:20 ` Vineet Gupta 2017-06-21 17:20 ` Vineet Gupta 2017-06-21 17:52 ` Kirill A. Shutemov 2017-06-21 17:52 ` Kirill A. Shutemov 2017-06-21 17:52 ` Kirill A. Shutemov 2017-06-19 17:11 ` Nadav Amit 2017-06-19 17:11 ` Nadav Amit 2017-06-19 21:57 ` Kirill A. Shutemov 2017-06-19 21:57 ` Kirill A. Shutemov 2017-06-15 14:52 ` [PATCHv2 2/3] mm: Do not loose dirty and access bits in pmdp_invalidate() Kirill A. Shutemov 2017-06-15 14:52 ` Kirill A. Shutemov 2017-06-15 22:44 ` kbuild test robot 2017-06-15 22:44 ` kbuild test robot 2017-06-15 22:44 ` kbuild test robot 2017-06-16 13:40 ` Andrea Arcangeli 2017-06-16 13:40 ` Andrea Arcangeli 2017-06-19 13:29 ` Kirill A. Shutemov 2017-06-19 13:29 ` Kirill A. Shutemov 2017-06-15 14:52 ` [PATCHv2 3/3] mm: Use updated pmdp_invalidate() inteface to track dirty/accessed bits Kirill A. Shutemov 2017-06-15 14:52 ` Kirill A. Shutemov 2017-06-15 21:54 ` kbuild test robot 2017-06-15 21:54 ` kbuild test robot 2017-06-15 21:54 ` kbuild test robot 2017-06-15 23:02 ` kbuild test robot 2017-06-15 23:02 ` kbuild test robot 2017-06-15 23:02 ` kbuild test robot 2017-06-16 3:02 ` Minchan Kim 2017-06-16 3:02 ` Minchan Kim 2017-06-16 13:19 ` Kirill A. Shutemov 2017-06-16 13:19 ` Kirill A. Shutemov 2017-06-16 13:52 ` Minchan Kim 2017-06-16 13:52 ` Minchan Kim 2017-06-16 14:27 ` Andrea Arcangeli [this message] 2017-06-16 14:27 ` Andrea Arcangeli 2017-06-16 14:53 ` Minchan Kim 2017-06-16 14:53 ` Minchan Kim 2017-06-19 14:03 ` Kirill A. Shutemov 2017-06-19 14:03 ` Kirill A. Shutemov 2017-06-20 2:52 ` Minchan Kim 2017-06-20 2:52 ` Minchan Kim 2017-06-20 9:57 ` Minchan Kim 2017-06-20 9:57 ` Minchan Kim 2017-06-16 11:31 ` Aneesh Kumar K.V 2017-06-16 11:31 ` Aneesh Kumar K.V 2017-06-16 11:31 ` Aneesh Kumar K.V 2017-06-16 11:31 ` Aneesh Kumar K.V 2017-06-16 13:21 ` Kirill A. Shutemov 2017-06-16 13:21 ` Kirill A. Shutemov 2017-06-16 15:57 ` Aneesh Kumar K.V 2017-06-16 15:57 ` Aneesh Kumar K.V
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170616142720.GH11676@redhat.com \ --to=aarcange@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=aneesh.kumar@linux.vnet.ibm.com \ --cc=catalin.marinas@arm.com \ --cc=davem@davemloft.net \ --cc=heiko.carstens@de.ibm.com \ --cc=kirill.shutemov@linux.intel.com \ --cc=kirill@shutemov.name \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux@armlinux.org.uk \ --cc=minchan@kernel.org \ --cc=ralf@linux-mips.org \ --cc=schwidefsky@de.ibm.com \ --cc=vbabka@suse.cz \ --cc=vgupta@synopsys.com \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.