tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pmap attempts at copying to executable pages both on mips and powerpc/booke



On 09/20/16 12:34, Rin Okuyama wrote:

[snip...]

However, unfortunately, something is still wrong. top(1) reports resources
of some processes are negative:

  % top
  ...
    PID USERNAME PRI NICE   SIZE   RES STATE      TIME   WCPU CPU COMMAND
  ...
    573 root      85    0  4304K -3832K nanoslp    0:01  0.00% 0.00% cron
  ...


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.

Nick





Home | Main Index | Thread Index | Old Index