From owner-svn-src-user@FreeBSD.ORG Sun Aug 4 21:27:35 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 415582E9; Sun, 4 Aug 2013 21:27:35 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2C7622A62; Sun, 4 Aug 2013 21:27:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r74LRZIS002737; Sun, 4 Aug 2013 21:27:35 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r74LRVaU002712; Sun, 4 Aug 2013 21:27:31 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201308042127.r74LRVaU002712@svn.freebsd.org> From: Attilio Rao Date: Sun, 4 Aug 2013 21:27:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r253943 - in user/attilio/vmobj-fullread: cddl/contrib/opensolaris/cmd/zfs etc/devd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/dev/iwn sys/geom/part sys/i386/i386... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Aug 2013 21:27:35 -0000 Author: attilio Date: Sun Aug 4 21:27:31 2013 New Revision: 253943 URL: http://svnweb.freebsd.org/changeset/base/253943 Log: MFC Modified: user/attilio/vmobj-fullread/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/attilio/vmobj-fullread/etc/devd/usb.conf user/attilio/vmobj-fullread/sys/amd64/amd64/pmap.c user/attilio/vmobj-fullread/sys/amd64/include/pmap.h user/attilio/vmobj-fullread/sys/arm/arm/pmap-v6.c user/attilio/vmobj-fullread/sys/arm/arm/pmap.c user/attilio/vmobj-fullread/sys/arm/include/pmap.h user/attilio/vmobj-fullread/sys/dev/iwn/if_iwn.c user/attilio/vmobj-fullread/sys/geom/part/g_part.c user/attilio/vmobj-fullread/sys/geom/part/g_part_apm.c user/attilio/vmobj-fullread/sys/i386/i386/pmap.c user/attilio/vmobj-fullread/sys/i386/i386/vm_machdep.c user/attilio/vmobj-fullread/sys/i386/include/pmap.h user/attilio/vmobj-fullread/sys/i386/xen/pmap.c user/attilio/vmobj-fullread/sys/ia64/ia64/pmap.c user/attilio/vmobj-fullread/sys/mips/include/pmap.h user/attilio/vmobj-fullread/sys/mips/mips/pmap.c user/attilio/vmobj-fullread/sys/powerpc/aim/mmu_oea.c user/attilio/vmobj-fullread/sys/powerpc/aim/mmu_oea64.c user/attilio/vmobj-fullread/sys/powerpc/include/pmap.h user/attilio/vmobj-fullread/sys/vm/vm_page.h Directory Properties: user/attilio/vmobj-fullread/ (props changed) user/attilio/vmobj-fullread/cddl/ (props changed) user/attilio/vmobj-fullread/cddl/contrib/opensolaris/ (props changed) user/attilio/vmobj-fullread/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/attilio/vmobj-fullread/sys/ (props changed) user/attilio/vmobj-fullread/sys/cddl/contrib/opensolaris/ (props changed) Modified: user/attilio/vmobj-fullread/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/attilio/vmobj-fullread/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sun Aug 4 21:27:31 2013 (r253943) @@ -57,6 +57,7 @@ #include #include #include +#include #include #include Modified: user/attilio/vmobj-fullread/etc/devd/usb.conf ============================================================================== --- user/attilio/vmobj-fullread/etc/devd/usb.conf Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/etc/devd/usb.conf Sun Aug 4 21:27:31 2013 (r253943) @@ -777,7 +777,7 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x050d"; - match "product" "(0x8053|0x805c|0x815c|0x825a|0x825b)"; + match "product" "(0x8053|0x805c|0x815c)"; action "kldload -n if_run"; }; @@ -785,6 +785,30 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x050d"; + match "product" "0x815f"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x050d"; + match "product" "(0x825a|0x825b)"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x050d"; + match "product" "0x845a"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x050d"; match "product" "0x905b"; action "kldload -n if_rum"; }; @@ -800,6 +824,14 @@ nomatch 32 { nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; + match "vendor" "0x050d"; + match "product" "0x945a"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; match "vendor" "0x0525"; match "product" "(0x1080|0xa4a0)"; action "kldload -n udbp"; @@ -1249,6 +1281,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x06f8"; + match "product" "(0xe031|0xe032)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x06f8"; match "product" "0xe033"; action "kldload -n if_urtwn"; }; @@ -1457,6 +1497,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x07aa"; + match "product" "0x0047"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x07aa"; match "product" "0x0056"; action "kldload -n if_urtwn"; }; @@ -1561,6 +1609,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x07d1"; + match "product" "(0x3300|0x3302|0x3303)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x07d1"; match "product" "0x3a0c"; action "kldload -n if_uath"; }; @@ -1657,7 +1713,23 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x083a"; - match "product" "(0x6618|0x7511|0x7512|0x7522|0x8522|0xa512|0xa618|0xa701|0xa702|0xb522|0xc522|0xd522)"; + match "product" "(0x6618|0x7511|0x7512|0x7522|0x8522|0xa512|0xa618|0xa701|0xa702|0xb522)"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x083a"; + match "product" "0xc512"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x083a"; + match "product" "(0xc522|0xd522)"; action "kldload -n if_run"; }; @@ -2137,7 +2209,39 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x0b05"; - match "product" "(0x1731|0x1732|0x1742|0x1760|0x1761|0x1784|0x1790|0x179d)"; + match "product" "(0x1731|0x1732|0x1742|0x1760|0x1761|0x1784)"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0b05"; + match "product" "0x1786"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0b05"; + match "product" "0x1790"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0b05"; + match "product" "0x1791"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0b05"; + match "product" "0x179d"; action "kldload -n if_run"; }; @@ -2273,7 +2377,23 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x0bda"; - match "product" "(0x8170|0x8176|0x8177|0x8178|0x817a|0x817b|0x817c|0x817d|0x817e)"; + match "product" "0x8170"; + action "kldload -n if_urtwn"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0bda"; + match "product" "(0x8171|0x8172|0x8173|0x8174)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0bda"; + match "product" "(0x8176|0x8177|0x8178|0x817a|0x817b|0x817c|0x817d|0x817e)"; action "kldload -n if_urtwn"; }; @@ -2305,6 +2425,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x0bda"; + match "product" "(0x8712|0x8712)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0bda"; match "product" "0x8754"; action "kldload -n if_urtwn"; }; @@ -2312,6 +2440,14 @@ nomatch 32 { nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; + match "vendor" "0x0bda"; + match "product" "0xc512"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; match "vendor" "0x0bed"; match "product" "(0x1100|0x1101)"; action "kldload -n uslcom"; @@ -2609,7 +2745,39 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x0df6"; - match "product" "(0x002b|0x002c|0x002d|0x0039|0x003b|0x003c|0x003d|0x003e|0x003f|0x0040|0x0041|0x0042|0x0047|0x0048|0x004a|0x004d)"; + match "product" "(0x002b|0x002c|0x002d|0x0039|0x003b|0x003c|0x003d|0x003e|0x003f|0x0040|0x0041|0x0042)"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0df6"; + match "product" "0x0045"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0df6"; + match "product" "(0x0047|0x0048|0x004a)"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0df6"; + match "product" "0x004b"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0df6"; + match "product" "0x004d"; action "kldload -n if_run"; }; @@ -2681,6 +2849,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x0e66"; + match "product" "(0x0015|0x0016)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x0e66"; match "product" "0x0019"; action "kldload -n if_urtwn"; }; @@ -3401,6 +3577,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x13d3"; + match "product" "(0x3306|0x3309|0x3310|0x3311|0x3325)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x13d3"; match "product" "(0x3357|0x3358|0x3359)"; action "kldload -n if_urtwn"; }; @@ -3553,6 +3737,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x14b2"; + match "product" "(0x3300|0x3301|0x3302)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x14b2"; match "product" "0x3c02"; action "kldload -n if_ural"; }; @@ -3945,6 +4137,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x1740"; + match "product" "(0x9603|0x9605)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x1740"; match "product" "(0x9701|0x9702|0x9703|0x9705|0x9706|0x9707|0x9708|0x9709|0x9801)"; action "kldload -n if_run"; }; @@ -3961,7 +4161,23 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x177f"; - match "product" "(0x0153|0x0302|0x0313)"; + match "product" "0x0153"; + action "kldload -n if_run"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x177f"; + match "product" "0x0154"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x177f"; + match "product" "(0x0302|0x0313)"; action "kldload -n if_run"; }; @@ -4353,6 +4569,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x2019"; + match "product" "0xab28"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x2019"; match "product" "(0xab2a|0xab2b|0xab2e)"; action "kldload -n if_urtwn"; }; @@ -4681,6 +4905,14 @@ nomatch 32 { match "bus" "uhub[0-9]+"; match "mode" "host"; match "vendor" "0x7392"; + match "product" "(0x7611|0x7612|0x7622)"; + action "kldload -n if_rsu"; +}; + +nomatch 32 { + match "bus" "uhub[0-9]+"; + match "mode" "host"; + match "vendor" "0x7392"; match "product" "(0x7711|0x7717|0x7718)"; action "kldload -n if_run"; }; @@ -4936,5 +5168,5 @@ nomatch 32 { action "kldload -n umass"; }; -# 2477 USB entries processed +# 2515 USB entries processed Modified: user/attilio/vmobj-fullread/sys/amd64/amd64/pmap.c ============================================================================== --- user/attilio/vmobj-fullread/sys/amd64/amd64/pmap.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/amd64/amd64/pmap.c Sun Aug 4 21:27:31 2013 (r253943) @@ -791,7 +791,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = PAT_WRITE_BACK; + m->md.pat_mode = PAT_WRITE_BACK; } /* @@ -1454,7 +1454,7 @@ pmap_qenter(vm_offset_t sva, vm_page_t * endpte = pte + count; while (pte < endpte) { m = *ma++; - pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->mdmemattr, 0); + pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 0); if ((*pte & (PG_FRAME | PG_PTE_CACHE)) != pa) { oldpte |= *pte; pte_store(pte, pa | PG_G | PG_RW | PG_V); @@ -3470,7 +3470,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, newpte |= PG_U; if (pmap == kernel_pmap) newpte |= PG_G; - newpte |= pmap_cache_bits(m->mdmemattr, 0); + newpte |= pmap_cache_bits(m->md.pat_mode, 0); mpte = NULL; @@ -3658,7 +3658,7 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t " in pmap %p", va, pmap); return (FALSE); } - newpde = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->mdmemattr, 1) | + newpde = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 1) | PG_PS | PG_V; if ((m->oflags & VPO_UNMANAGED) == 0) { newpde |= PG_MANAGED; @@ -3860,7 +3860,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ */ pmap_resident_count_inc(pmap, 1); - pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->mdmemattr, 0); + pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 0); if ((prot & VM_PROT_EXECUTE) == 0) pa |= pg_nx; @@ -3901,7 +3901,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs pd_entry_t *pde; vm_paddr_t pa, ptepa; vm_page_t p, pdpg; - vm_memattr_t pat_mode; + int pat_mode; VM_OBJECT_ASSERT_WLOCKED(object); KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, @@ -3912,7 +3912,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs p = vm_page_lookup(object, pindex); KASSERT(p->valid == VM_PAGE_BITS_ALL, ("pmap_object_init_pt: invalid page %p", p)); - pat_mode = p->mdmemattr; + pat_mode = p->md.pat_mode; /* * Abort the mapping if the first page is not physically @@ -3933,7 +3933,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs KASSERT(p->valid == VM_PAGE_BITS_ALL, ("pmap_object_init_pt: invalid page %p", p)); if (pa != VM_PAGE_TO_PHYS(p) || - pat_mode != p->mdmemattr) + pat_mode != p->md.pat_mode) return; p = TAILQ_NEXT(p, listq); } @@ -5121,7 +5121,7 @@ void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma) { - m->mdmemattr = ma; + m->md.pat_mode = ma; /* * If "m" is a normal page, update its direct mapping. This update @@ -5130,7 +5130,7 @@ pmap_page_set_memattr(vm_page_t m, vm_me */ if ((m->flags & PG_FICTITIOUS) == 0 && pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, - m->mdmemattr)) + m->md.pat_mode)) panic("memory attribute change on the direct map failed"); } Modified: user/attilio/vmobj-fullread/sys/amd64/include/pmap.h ============================================================================== --- user/attilio/vmobj-fullread/sys/amd64/include/pmap.h Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/amd64/include/pmap.h Sun Aug 4 21:27:31 2013 (r253943) @@ -233,6 +233,7 @@ struct pv_chunk; struct md_page { TAILQ_HEAD(,pv_entry) pv_list; + int pat_mode; }; /* @@ -299,7 +300,7 @@ extern vm_paddr_t dump_avail[]; extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; -#define pmap_page_get_memattr(m) ((m)->mdmemattr) +#define pmap_page_get_memattr(m) ((vm_memattr_t)(m)->md.pat_mode) #define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_unmapbios(va, sz) pmap_unmapdev((va), (sz)) Modified: user/attilio/vmobj-fullread/sys/arm/arm/pmap-v6.c ============================================================================== --- user/attilio/vmobj-fullread/sys/arm/arm/pmap-v6.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/arm/arm/pmap-v6.c Sun Aug 4 21:27:31 2013 (r253943) @@ -1183,7 +1183,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = VM_MEMATTR_DEFAULT; + m->md.pv_memattr = VM_MEMATTR_DEFAULT; } static vm_offset_t @@ -2823,7 +2823,7 @@ validate: if (!(prot & VM_PROT_EXECUTE)) npte |= L2_XN; - if (m->mdmemattr != VM_MEMATTR_UNCACHEABLE) + if (m->md.pv_memattr != VM_MEMATTR_UNCACHEABLE) npte |= pte_l2_s_cache_mode; } @@ -4379,7 +4379,7 @@ pmap_page_set_memattr(vm_page_t m, vm_me * Remember the memattr in a field that gets used to set the appropriate * bits in the PTEs as mappings are established. */ - m->mdmemattr = ma; + m->md.pv_memattr = ma; /* * It appears that this function can only be called before any mappings Modified: user/attilio/vmobj-fullread/sys/arm/arm/pmap.c ============================================================================== --- user/attilio/vmobj-fullread/sys/arm/arm/pmap.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/arm/arm/pmap.c Sun Aug 4 21:27:31 2013 (r253943) @@ -1380,7 +1380,7 @@ pmap_fix_cache(struct vm_page *pg, pmap_ (pv->pv_flags & PVF_NC)) { pv->pv_flags &= ~PVF_NC; - if (pg->mdmemattr != VM_MEMATTR_UNCACHEABLE) + if (pg->md.pv_memattr != VM_MEMATTR_UNCACHEABLE) pmap_set_cache_entry(pv, pm, va, 1); continue; } @@ -1390,7 +1390,7 @@ pmap_fix_cache(struct vm_page *pg, pmap_ !pmwc && (pv->pv_flags & PVF_NC)) { pv->pv_flags &= ~(PVF_NC | PVF_MWC); - if (pg->mdmemattr != VM_MEMATTR_UNCACHEABLE) + if (pg->md.pv_memattr != VM_MEMATTR_UNCACHEABLE) pmap_set_cache_entry(pv, pm, va, 1); } } @@ -1442,7 +1442,8 @@ pmap_clearbit(struct vm_page *pg, u_int if (!(oflags & maskbits)) { if ((maskbits & PVF_WRITE) && (pv->pv_flags & PVF_NC)) { - if (pg->mdmemattr != VM_MEMATTR_UNCACHEABLE) { + if (pg->md.pv_memattr != + VM_MEMATTR_UNCACHEABLE) { PMAP_LOCK(pm); l2b = pmap_get_l2_bucket(pm, va); ptep = &l2b->l2b_kva[l2pte_index(va)]; @@ -1479,7 +1480,7 @@ pmap_clearbit(struct vm_page *pg, u_int * permission. */ if (maskbits & PVF_WRITE) { - if (pg->mdmemattr != + if (pg->md.pv_memattr != VM_MEMATTR_UNCACHEABLE) npte |= pte_l2_s_cache_mode; pv->pv_flags &= ~(PVF_NC | PVF_MWC); @@ -1810,7 +1811,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = VM_MEMATTR_DEFAULT; + m->md.pv_memattr = VM_MEMATTR_DEFAULT; } /* @@ -3411,7 +3412,7 @@ do_l2b_alloc: (m->oflags & VPO_UNMANAGED) == 0) vm_page_aflag_set(m, PGA_WRITEABLE); } - if (m->mdmemattr != VM_MEMATTR_UNCACHEABLE) + if (m->md.pv_memattr != VM_MEMATTR_UNCACHEABLE) npte |= pte_l2_s_cache_mode; if (m && m == opg) { /* @@ -5036,7 +5037,7 @@ pmap_page_set_memattr(vm_page_t m, vm_me * Remember the memattr in a field that gets used to set the appropriate * bits in the PTEs as mappings are established. */ - m->mdmemattr = ma; + m->md.pv_memattr = ma; /* * It appears that this function can only be called before any mappings Modified: user/attilio/vmobj-fullread/sys/arm/include/pmap.h ============================================================================== --- user/attilio/vmobj-fullread/sys/arm/include/pmap.h Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/arm/include/pmap.h Sun Aug 4 21:27:31 2013 (r253943) @@ -96,7 +96,7 @@ enum mem_type { #endif -#define pmap_page_get_memattr(m) ((m)->mdmemattr) +#define pmap_page_get_memattr(m) ((m)->md.pv_memattr) #define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) #define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma); @@ -120,6 +120,7 @@ struct pv_chunk; struct md_page { int pvh_attrs; + vm_memattr_t pv_memattr; vm_offset_t pv_kva; /* first kernel VA mapping */ TAILQ_HEAD(,pv_entry) pv_list; }; Modified: user/attilio/vmobj-fullread/sys/dev/iwn/if_iwn.c ============================================================================== --- user/attilio/vmobj-fullread/sys/dev/iwn/if_iwn.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/dev/iwn/if_iwn.c Sun Aug 4 21:27:31 2013 (r253943) @@ -7489,7 +7489,7 @@ iwn_hw_reset(void *arg0, int pending) #define COUNTOF(array) (sizeof(array) / sizeof(array[0])) /* - * Transate CSR code to string + * Translate CSR code to string */ static char *iwn_get_csr_string(int csr) { Modified: user/attilio/vmobj-fullread/sys/geom/part/g_part.c ============================================================================== --- user/attilio/vmobj-fullread/sys/geom/part/g_part.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/geom/part/g_part.c Sun Aug 4 21:27:31 2013 (r253943) @@ -29,7 +29,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include Modified: user/attilio/vmobj-fullread/sys/geom/part/g_part_apm.c ============================================================================== --- user/attilio/vmobj-fullread/sys/geom/part/g_part_apm.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/geom/part/g_part_apm.c Sun Aug 4 21:27:31 2013 (r253943) @@ -30,7 +30,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/attilio/vmobj-fullread/sys/i386/i386/pmap.c ============================================================================== --- user/attilio/vmobj-fullread/sys/i386/i386/pmap.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/i386/i386/pmap.c Sun Aug 4 21:27:31 2013 (r253943) @@ -645,7 +645,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = PAT_WRITE_BACK; + m->md.pat_mode = PAT_WRITE_BACK; } #ifdef PAE @@ -1534,7 +1534,7 @@ pmap_qenter(vm_offset_t sva, vm_page_t * endpte = pte + count; while (pte < endpte) { m = *ma++; - pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->mdmemattr, 0); + pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 0); if ((*pte & (PG_FRAME | PG_PTE_CACHE)) != pa) { oldpte |= *pte; pte_store(pte, pa | pgeflag | PG_RW | PG_V); @@ -3532,7 +3532,7 @@ validate: /* * Now validate mapping with desired protection/wiring. */ - newpte = (pt_entry_t)(pa | pmap_cache_bits(m->mdmemattr, 0) | PG_V); + newpte = (pt_entry_t)(pa | pmap_cache_bits(m->md.pat_mode, 0) | PG_V); if ((prot & VM_PROT_WRITE) != 0) { newpte |= PG_RW; if ((newpte & PG_MANAGED) != 0) @@ -3621,7 +3621,7 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t " in pmap %p", va, pmap); return (FALSE); } - newpde = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->mdmemattr, 1) | + newpde = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 1) | PG_PS | PG_V; if ((m->oflags & VPO_UNMANAGED) == 0) { newpde |= PG_MANAGED; @@ -3812,7 +3812,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ */ pmap->pm_stats.resident_count++; - pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->mdmemattr, 0); + pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 0); #ifdef PAE if ((prot & VM_PROT_EXECUTE) == 0) pa |= pg_nx; @@ -3855,7 +3855,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs pd_entry_t *pde; vm_paddr_t pa, ptepa; vm_page_t p; - vm_memattr_t pat_mode; + int pat_mode; VM_OBJECT_ASSERT_WLOCKED(object); KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, @@ -3867,7 +3867,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs p = vm_page_lookup(object, pindex); KASSERT(p->valid == VM_PAGE_BITS_ALL, ("pmap_object_init_pt: invalid page %p", p)); - pat_mode = p->mdmemattr; + pat_mode = p->md.pat_mode; /* * Abort the mapping if the first page is not physically @@ -3888,7 +3888,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs KASSERT(p->valid == VM_PAGE_BITS_ALL, ("pmap_object_init_pt: invalid page %p", p)); if (pa != VM_PAGE_TO_PHYS(p) || - pat_mode != p->mdmemattr) + pat_mode != p->md.pat_mode) return; p = TAILQ_NEXT(p, listq); } @@ -4119,7 +4119,7 @@ pmap_zero_page(vm_page_t m) panic("pmap_zero_page: CMAP2 busy"); sched_pin(); *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | PG_A | PG_M | - pmap_cache_bits(m->mdmemattr, 0); + pmap_cache_bits(m->md.pat_mode, 0); invlcaddr(sysmaps->CADDR2); pagezero(sysmaps->CADDR2); *sysmaps->CMAP2 = 0; @@ -4144,7 +4144,7 @@ pmap_zero_page_area(vm_page_t m, int off panic("pmap_zero_page_area: CMAP2 busy"); sched_pin(); *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | PG_A | PG_M | - pmap_cache_bits(m->mdmemattr, 0); + pmap_cache_bits(m->md.pat_mode, 0); invlcaddr(sysmaps->CADDR2); if (off == 0 && size == PAGE_SIZE) pagezero(sysmaps->CADDR2); @@ -4169,7 +4169,7 @@ pmap_zero_page_idle(vm_page_t m) panic("pmap_zero_page_idle: CMAP3 busy"); sched_pin(); *CMAP3 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | PG_A | PG_M | - pmap_cache_bits(m->mdmemattr, 0); + pmap_cache_bits(m->md.pat_mode, 0); invlcaddr(CADDR3); pagezero(CADDR3); *CMAP3 = 0; @@ -4197,9 +4197,9 @@ pmap_copy_page(vm_page_t src, vm_page_t invlpg((u_int)sysmaps->CADDR1); invlpg((u_int)sysmaps->CADDR2); *sysmaps->CMAP1 = PG_V | VM_PAGE_TO_PHYS(src) | PG_A | - pmap_cache_bits(src->mdmemattr, 0); + pmap_cache_bits(src->md.pat_mode, 0); *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(dst) | PG_A | PG_M | - pmap_cache_bits(dst->mdmemattr, 0); + pmap_cache_bits(dst->md.pat_mode, 0); bcopy(sysmaps->CADDR1, sysmaps->CADDR2, PAGE_SIZE); *sysmaps->CMAP1 = 0; *sysmaps->CMAP2 = 0; @@ -4236,9 +4236,9 @@ pmap_copy_pages(vm_page_t ma[], vm_offse b_pg_offset = b_offset & PAGE_MASK; cnt = min(cnt, PAGE_SIZE - b_pg_offset); *sysmaps->CMAP1 = PG_V | VM_PAGE_TO_PHYS(a_pg) | PG_A | - pmap_cache_bits(b_pg->mdmemattr, 0); + pmap_cache_bits(b_pg->md.pat_mode, 0); *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(b_pg) | PG_A | - PG_M | pmap_cache_bits(b_pg->mdmemattr, 0); + PG_M | pmap_cache_bits(b_pg->md.pat_mode, 0); a_cp = sysmaps->CADDR1 + a_pg_offset; b_cp = sysmaps->CADDR2 + b_pg_offset; bcopy(a_cp, b_cp, cnt); @@ -5050,7 +5050,7 @@ void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma) { - m->mdmemattr = ma; + m->md.pat_mode = ma; if ((m->flags & PG_FICTITIOUS) != 0) return; @@ -5088,7 +5088,7 @@ pmap_flush_page(vm_page_t m) panic("pmap_flush_page: CMAP2 busy"); sched_pin(); *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | - PG_A | PG_M | pmap_cache_bits(m->mdmemattr, 0); + PG_A | PG_M | pmap_cache_bits(m->md.pat_mode, 0); invlcaddr(sysmaps->CADDR2); sva = (vm_offset_t)sysmaps->CADDR2; eva = sva + PAGE_SIZE; Modified: user/attilio/vmobj-fullread/sys/i386/i386/vm_machdep.c ============================================================================== --- user/attilio/vmobj-fullread/sys/i386/i386/vm_machdep.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/i386/i386/vm_machdep.c Sun Aug 4 21:27:31 2013 (r253943) @@ -864,10 +864,10 @@ sf_buf_alloc(struct vm_page *m, int flag opte = *ptep; #ifdef XEN PT_SET_MA(sf->kva, xpmap_ptom(VM_PAGE_TO_PHYS(m)) | pgeflag - | PG_RW | PG_V | pmap_cache_bits(m->mdmemattr, 0)); + | PG_RW | PG_V | pmap_cache_bits(m->md.pat_mode, 0)); #else *ptep = VM_PAGE_TO_PHYS(m) | pgeflag | PG_RW | PG_V | - pmap_cache_bits(m->mdmemattr, 0); + pmap_cache_bits(m->md.pat_mode, 0); #endif /* Modified: user/attilio/vmobj-fullread/sys/i386/include/pmap.h ============================================================================== --- user/attilio/vmobj-fullread/sys/i386/include/pmap.h Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/i386/include/pmap.h Sun Aug 4 21:27:31 2013 (r253943) @@ -429,6 +429,7 @@ struct pv_chunk; struct md_page { TAILQ_HEAD(,pv_entry) pv_list; + int pat_mode; }; struct pmap { @@ -498,7 +499,7 @@ extern char *ptvmmap; /* poor name! */ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; -#define pmap_page_get_memattr(m) ((m)->mdmemattr) +#define pmap_page_get_memattr(m) ((vm_memattr_t)(m)->md.pat_mode) #define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_unmapbios(va, sz) pmap_unmapdev((va), (sz)) Modified: user/attilio/vmobj-fullread/sys/i386/xen/pmap.c ============================================================================== --- user/attilio/vmobj-fullread/sys/i386/xen/pmap.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/i386/xen/pmap.c Sun Aug 4 21:27:31 2013 (r253943) @@ -536,7 +536,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = PAT_WRITE_BACK; + m->md.pat_mode = PAT_WRITE_BACK; } /* @@ -3110,7 +3110,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs pd_entry_t *pde; vm_paddr_t pa, ptepa; vm_page_t p; - vm_memattr_t pat_mode; + int pat_mode; VM_OBJECT_ASSERT_WLOCKED(object); KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, @@ -3122,7 +3122,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs p = vm_page_lookup(object, pindex); KASSERT(p->valid == VM_PAGE_BITS_ALL, ("pmap_object_init_pt: invalid page %p", p)); - pat_mode = p->mdmemattr; + pat_mode = p->md.pat_mode; /* * Abort the mapping if the first page is not physically @@ -3143,7 +3143,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs KASSERT(p->valid == VM_PAGE_BITS_ALL, ("pmap_object_init_pt: invalid page %p", p)); if (pa != VM_PAGE_TO_PHYS(p) || - pat_mode != p->mdmemattr) + pat_mode != p->md.pat_mode) return; p = TAILQ_NEXT(p, listq); } @@ -4065,7 +4065,7 @@ void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma) { - m->mdmemattr = ma; + m->md.pat_mode = ma; if ((m->flags & PG_FICTITIOUS) != 0) return; @@ -4104,7 +4104,7 @@ pmap_flush_page(vm_page_t m) sched_pin(); PT_SET_MA(sysmaps->CADDR2, PG_V | PG_RW | VM_PAGE_TO_MACH(m) | PG_A | PG_M | - pmap_cache_bits(m->mdmemattr, 0)); + pmap_cache_bits(m->md.pat_mode, 0)); invlcaddr(sysmaps->CADDR2); sva = (vm_offset_t)sysmaps->CADDR2; eva = sva + PAGE_SIZE; Modified: user/attilio/vmobj-fullread/sys/ia64/ia64/pmap.c ============================================================================== --- user/attilio/vmobj-fullread/sys/ia64/ia64/pmap.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/ia64/ia64/pmap.c Sun Aug 4 21:27:31 2013 (r253943) @@ -473,7 +473,7 @@ pmap_page_to_va(vm_page_t m) vm_offset_t va; pa = VM_PAGE_TO_PHYS(m); - va = (m->mdmemattr == VM_MEMATTR_UNCACHEABLE) ? IA64_PHYS_TO_RR6(pa) : + va = (m->md.memattr == VM_MEMATTR_UNCACHEABLE) ? IA64_PHYS_TO_RR6(pa) : IA64_PHYS_TO_RR7(pa); return (va); } @@ -486,7 +486,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = VM_MEMATTR_DEFAULT; + m->md.memattr = VM_MEMATTR_DEFAULT; } /* @@ -1439,7 +1439,7 @@ pmap_qenter(vm_offset_t va, vm_page_t *m else pmap_enter_vhpt(pte, va); pmap_pte_prot(kernel_pmap, pte, VM_PROT_ALL); - pmap_pte_attr(pte, m[i]->mdmemattr); + pmap_pte_attr(pte, m[i]->md.memattr); pmap_set_pte(pte, va, VM_PAGE_TO_PHYS(m[i]), FALSE, FALSE); va += PAGE_SIZE; } @@ -1768,7 +1768,7 @@ validate: * adds the pte to the VHPT if necessary. */ pmap_pte_prot(pmap, pte, prot); - pmap_pte_attr(pte, m->mdmemattr); + pmap_pte_attr(pte, m->md.memattr); pmap_set_pte(pte, va, pa, wired, managed); /* Invalidate the I-cache when needed. */ @@ -1875,7 +1875,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ pmap_enter_vhpt(pte, va); pmap_pte_prot(pmap, pte, prot & (VM_PROT_READ | VM_PROT_EXECUTE)); - pmap_pte_attr(pte, m->mdmemattr); + pmap_pte_attr(pte, m->md.memattr); pmap_set_pte(pte, va, VM_PAGE_TO_PHYS(m), FALSE, managed); if (prot & VM_PROT_EXECUTE) @@ -2417,7 +2417,7 @@ pmap_remove_write(vm_page_t m) } prot &= ~VM_PROT_WRITE; pmap_pte_prot(pmap, pte, prot); - pmap_pte_attr(pte, m->mdmemattr); + pmap_pte_attr(pte, m->md.memattr); pmap_invalidate_page(pv->pv_va); } pmap_switch(oldpmap); @@ -2499,7 +2499,7 @@ pmap_page_set_memattr(vm_page_t m, vm_me void *va; rw_wlock(&pvh_global_lock); - m->mdmemattr = ma; + m->md.memattr = ma; TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { pmap = PV_PMAP(pv); PMAP_LOCK(pmap); Modified: user/attilio/vmobj-fullread/sys/mips/include/pmap.h ============================================================================== --- user/attilio/vmobj-fullread/sys/mips/include/pmap.h Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/mips/include/pmap.h Sun Aug 4 21:27:31 2013 (r253943) @@ -69,6 +69,7 @@ struct pv_entry; struct pv_chunk; struct md_page { + int pv_flags; TAILQ_HEAD(, pv_entry) pv_list; }; Modified: user/attilio/vmobj-fullread/sys/mips/mips/pmap.c ============================================================================== --- user/attilio/vmobj-fullread/sys/mips/mips/pmap.c Sun Aug 4 21:24:54 2013 (r253942) +++ user/attilio/vmobj-fullread/sys/mips/mips/pmap.c Sun Aug 4 21:27:31 2013 (r253943) @@ -594,7 +594,7 @@ pmap_page_init(vm_page_t m) { TAILQ_INIT(&m->md.pv_list); - m->mdmemattr = 0; + m->md.pv_flags = 0; } /* @@ -1435,9 +1435,9 @@ pmap_pv_reclaim(pmap_t locked_pmap) m = PHYS_TO_VM_PAGE(TLBLO_PTE_TO_PA(oldpte)); if (pte_test(&oldpte, PTE_D)) vm_page_dirty(m); - if (m->mdmemattr & PV_TABLE_REF) + if (m->md.pv_flags & PV_TABLE_REF) vm_page_aflag_set(m, PGA_REFERENCED); - m->mdmemattr &= ~PV_TABLE_REF; + m->md.pv_flags &= ~PV_TABLE_REF; TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_aflag_clear(m, PGA_WRITEABLE); @@ -1705,9 +1705,9 @@ pmap_remove_pte(struct pmap *pmap, pt_en __func__, (void *)va, (uintmax_t)oldpte)); vm_page_dirty(m); } - if (m->mdmemattr & PV_TABLE_REF) + if (m->md.pv_flags & PV_TABLE_REF) vm_page_aflag_set(m, PGA_REFERENCED); - m->mdmemattr &= ~PV_TABLE_REF; + m->md.pv_flags &= ~PV_TABLE_REF; pmap_remove_entry(pmap, m, va); } @@ -1846,7 +1846,7 @@ pmap_remove_all(vm_page_t m) ("pmap_remove_all: page %p is not managed", m)); rw_wlock(&pvh_global_lock); - if (m->mdmemattr & PV_TABLE_REF) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***