Re: pmap attempts at copying to executable pages both on mips and powerpc/booke
Rin Okuyama <[email protected]> Thu, 29 Sep 2016 00:13:40 +0900
| Newsgroups | gmane.os.netbsd.ports.mips.devel,gmane.os.netbsd.devel.kernel,gmane.os.netbsd.ports.powerpc |
|---|---|
| Message-ID | <[email protected]> |
On 2016/09/28 20:40, Nick Hudson wrote:
> The problem is here...
>
> https://nxr.netbsd.org/xref/src/sys/uvm/pmap/pmap.c#1275
>
> 1275 if (pte_valid_p(opte) && pte_to_paddr(opte) != pa) {
> 1276 pmap_remove(pmap, va, va + NBPG);
> 1277 PMAP_COUNT(user_mappings_changed);
> 1278 }
> 1279
> 1280 KASSERT(pte_valid_p(npte));
> 1281 const bool resident = pte_valid_p(opte);
> 1282 if (resident) {
> 1283 update_flags |= PMAP_TLB_NEED_IPI;
> 1284 } else {
> 1285 pmap->pm_stats.resident_count++;
> 1286 }
>
> if the mapping changes PA then the resident_count gets reduced by pmap_{,pte_}remove, but not increased again.
>
> I'm working on a fix.
Thank you very much for your analysis. I'm looking forward to hearing
good news from you!
Rin