[BACK]Return to pmap.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / uvm / pmap

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/uvm/pmap/pmap.c between version 1.1 and 1.1.4.1

version 1.1, 2012/10/03 00:51:45 version 1.1.4.1, 2013/08/28 23:59:38
Line 209  struct pmap_kernel kernel_pmap_store = {
Line 209  struct pmap_kernel kernel_pmap_store = {
                 .pm_segtab = PMAP_INVALID_SEGTAB_ADDRESS,                  .pm_segtab = PMAP_INVALID_SEGTAB_ADDRESS,
                 .pm_minaddr = VM_MIN_KERNEL_ADDRESS,                  .pm_minaddr = VM_MIN_KERNEL_ADDRESS,
                 .pm_maxaddr = VM_MAX_KERNEL_ADDRESS,                  .pm_maxaddr = VM_MAX_KERNEL_ADDRESS,
 #ifdef MULTIPROCESSOR  
                 .pm_active = 1,  
                 .pm_onproc = 1,  
 #endif  
         },          },
 };  };
   
Line 309  pmap_page_syncicache(struct vm_page *pg)
Line 305  pmap_page_syncicache(struct vm_page *pg)
 #endif  #endif
         struct vm_page_md * const mdpg = VM_PAGE_TO_MD(pg);          struct vm_page_md * const mdpg = VM_PAGE_TO_MD(pg);
         pv_entry_t pv = &mdpg->mdpg_first;          pv_entry_t pv = &mdpg->mdpg_first;
         __cpuset_t onproc = CPUSET_NULLSET;          kcpuset_t *onproc;
   #ifdef MULTIPROCESSOR
           kcpuset_create(&onproc, true);
   #else
           onproc = NULL;
   #endif
         (void)VM_PAGEMD_PVLIST_LOCK(mdpg, false);          (void)VM_PAGEMD_PVLIST_LOCK(mdpg, false);
   
         if (pv->pv_pmap != NULL) {          if (pv->pv_pmap != NULL) {
                 for (; pv != NULL; pv = pv->pv_next) {                  for (; pv != NULL; pv = pv->pv_next) {
 #ifdef MULTIPROCESSOR  #ifdef MULTIPROCESSOR
                         CPUSET_MERGE(onproc, pv->pv_pmap->pm_onproc);                          kcpuset_merge(onproc, pv->pv_pmap->pm_onproc);
                         if (CPUSET_EQUAL_P(onproc, cpuset_info.cpus_running)) {                          if (kcpuset_match(onproc, kcpuset_running)) {
                                 break;                                  break;
                         }                          }
 #else  #else
                         if (pv->pv_pmap == curpmap) {                          if (pv->pv_pmap == curpmap) {
                                 onproc = CPUSET_SINGLE(0);                                  onproc = curcpu()->ci_data.cpu_kcpuset;
                                 break;                                  break;
                         }                          }
 #endif  #endif
Line 329  pmap_page_syncicache(struct vm_page *pg)
Line 331  pmap_page_syncicache(struct vm_page *pg)
         VM_PAGEMD_PVLIST_UNLOCK(mdpg);          VM_PAGEMD_PVLIST_UNLOCK(mdpg);
         kpreempt_disable();          kpreempt_disable();
         pmap_md_page_syncicache(pg, onproc);          pmap_md_page_syncicache(pg, onproc);
   #ifdef MULTIPROCESSOR
           kcpuset_destroy(onproc);
   #endif
         kpreempt_enable();          kpreempt_enable();
 }  }
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.4.1

CVSweb <webmaster@jp.NetBSD.org>