Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1441017
| From | "Kirill A. Shutemov" <kirill@shutemov.name> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: a question about protection_map[] |
| Date | 2016-07-12 03:50 +0200 |
| Message-ID | <rTUZH-6B4-9@gated-at.bofh.it> (permalink) |
| References | <rTGtH-5FU-1@gated-at.bofh.it> <rTJBf-7EI-9@gated-at.bofh.it> <rTUQ2-6xe-31@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, Jul 12, 2016 at 09:31:30AM +0800, Xishi Qiu wrote: > On 2016/7/11 21:30, Kirill A. Shutemov wrote: > > > On Mon, Jul 11, 2016 at 06:12:30PM +0800, Xishi Qiu wrote: > >> Hi, > >> > >> We can use mprotect to set read only or read/write. > >> > >> mprotect_fixup() > >> vma_set_page_prot() > >> vm_pgprot_modify() > >> vm_get_page_prot() > >> protection_map[vm_flags & (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)] > >> > >> The following code shows that prots from __P001(PROT_READ) and __P010(PROT_WRITE) > >> are the same, so how does it distinguish read only or read/write from mprotect? > > > > It doesn't. > > > > Write protection will be removed by fault handler on next write access to > > the page. Somewhat suboptiomal, but zero page implemenation relies on this > > to work properly. > > > > Hi Kirill, > > I know, PAGE_READONLY and PAGE_COPY are both missed _PAGE_RW, > so it will cause page fault, then we will set new prot flag from > vma, right? Yes. See wp_page_reuse(). -- Kirill A. Shutemov
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
a question about protection_map[] Xishi Qiu <qiuxishi@huawei.com> - 2016-07-11 12:20 +0200
Re: a question about protection_map[] "Kirill A. Shutemov" <kirill@shutemov.name> - 2016-07-11 15:40 +0200
Re: a question about protection_map[] Xishi Qiu <qiuxishi@huawei.com> - 2016-07-12 03:40 +0200
Re: a question about protection_map[] "Kirill A. Shutemov" <kirill@shutemov.name> - 2016-07-12 03:50 +0200
csiph-web