[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] pagetable RO
>>> On 11.10.13 at 09:37, åæ<zhangzhi2022@xxxxxxxxxxx> wrote: > >> Date: Fri, 11 Oct 2013 08:15:43 +0100 >> From: JBeulich@xxxxxxxx >> To: zhangzhi2022@xxxxxxxxxxx >> CC: xen-devel@xxxxxxxxxxxxxxxxxxxx >> Subject: Re: [Xen-devel] pagetable RO >> >> >>> On 11.10.13 at 08:30, åæ<zhangzhi2022@xxxxxxxxxxx> wrote: >> > Say, the sub-op: MMU_NORMAL_PT_UPDATE, >> > if the page that ptr of struct mmu_update points to is PGT_l2_page_table, >> > then >> > the address part of val of struct mmu_update points >> > to a page, which is PGT_l1_page_table. >> > However, I couldn't find the protections for this PGT_l1_page_table >> > page in the do_mmu_update, is it already set as read-only >> > before launching MMU_UPDATE hypercall? >> > >> Of course - a page can't be PGT_l1_page_table when there still is >> some writable mapping around. > Thanks, but when will the page be set as read-only before the MMU_UPDATE > hypercall ? is there any hint? Whenever the guest kernel wants to do that. >> So for an L2 entry update it is sufficient to verify that all contained L1 > entries point to R/O >> pages (and transition them to PGT_l1_page_table if they aren't >> already). > > Besides, in the function do_mmu_update for an L2 entry update, the new > PGT_l1_page_table page, containing all L1 entries, does not have the process > of checking whether they are pointing to the pages of page table type. It surely does: mod_l2_entry() -> get_page_from_l2e() -> get_page_and_type_from_pagenr(mfn, PGT_l1_page_table, ...). > Instead, R/W flag is removed from the L1 entry only because the page that the > entry points to is non-sharable or is a I/O page. What's the reason? I don't think I understand what you're asking here. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |