From: Christoffer Dall <christoffer.dall@arm.com> To: kvm@vger.kernel.org Cc: aarcange@redhat.com, Paolo Bonzini <pbonzini@redhat.com>, kvmarm@lists.cs.columbia.edu Subject: Reference count on pages held in secondary MMUs Date: Sun, 9 Jun 2019 10:18:05 +0200 [thread overview] Message-ID: <20190609081805.GC21798@e113682-lin.lund.arm.com> (raw) Hi, I have been looking at how we deal with page_count(page) on pages held in stage 2 page tables on KVM/arm64. What we do currently is to drop the reference on the page we get from get_user_pages() once the page is inserted into our stage 2 page table, typically leaving page_count(page) == page_mapcount(page) == 1 which represents the userspace stage 1 mapping of the page, and we rely on MMU notifiers to remove the stage 2 mapping if corresponding stage 1 mapping is being unmapped. I believe this is analogous to what other architectures do? In some sense, we are thus maintaining a 'hidden', or internal, reference to the page, which is not counted anywhere. I am wondering if it would be equally valid to take a reference on the page, and remove that reference when unmapping via MMU notifiers, and if so, if there would be any advantages/drawbacks in doing so? Thanks, Christoffer
WARNING: multiple messages have this Message-ID (diff)
From: Christoffer Dall <christoffer.dall@arm.com> To: kvm@vger.kernel.org Cc: Paolo Bonzini <pbonzini@redhat.com>, kvmarm@lists.cs.columbia.edu Subject: Reference count on pages held in secondary MMUs Date: Sun, 9 Jun 2019 10:18:05 +0200 [thread overview] Message-ID: <20190609081805.GC21798@e113682-lin.lund.arm.com> (raw) Hi, I have been looking at how we deal with page_count(page) on pages held in stage 2 page tables on KVM/arm64. What we do currently is to drop the reference on the page we get from get_user_pages() once the page is inserted into our stage 2 page table, typically leaving page_count(page) == page_mapcount(page) == 1 which represents the userspace stage 1 mapping of the page, and we rely on MMU notifiers to remove the stage 2 mapping if corresponding stage 1 mapping is being unmapped. I believe this is analogous to what other architectures do? In some sense, we are thus maintaining a 'hidden', or internal, reference to the page, which is not counted anywhere. I am wondering if it would be equally valid to take a reference on the page, and remove that reference when unmapping via MMU notifiers, and if so, if there would be any advantages/drawbacks in doing so? Thanks, Christoffer _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
next reply other threads:[~2019-06-09 8:18 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-09 8:18 Christoffer Dall [this message] 2019-06-09 8:18 ` Reference count on pages held in secondary MMUs Christoffer Dall 2019-06-09 9:37 ` Paolo Bonzini 2019-06-09 9:37 ` Paolo Bonzini 2019-06-09 17:40 ` Andrea Arcangeli 2019-06-09 17:40 ` Andrea Arcangeli 2019-06-11 11:51 ` Christoffer Dall 2019-06-11 11:51 ` Christoffer Dall 2019-06-22 19:11 ` Andrea Arcangeli 2019-06-22 19:11 ` Andrea Arcangeli 2019-06-26 12:16 ` Christoffer Dall 2019-06-26 12:16 ` Christoffer Dall 2019-06-11 11:21 ` Christoffer Dall 2019-06-11 11:21 ` Christoffer Dall 2019-06-11 11:29 ` Paolo Bonzini 2019-06-11 11:29 ` Paolo Bonzini
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=20190609081805.GC21798@e113682-lin.lund.arm.com \ --to=christoffer.dall@arm.com \ --cc=aarcange@redhat.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=pbonzini@redhat.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.