From owner-p4-projects@FreeBSD.ORG Sun Jun 21 08:30:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E1F61065670; Sun, 21 Jun 2009 08:30:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27E4D1065675 for ; Sun, 21 Jun 2009 08:30:32 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1445B8FC18 for ; Sun, 21 Jun 2009 08:30:32 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5L8UWUe058903 for ; Sun, 21 Jun 2009 08:30:32 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5L8UVCB058901 for perforce@freebsd.org; Sun, 21 Jun 2009 08:30:31 GMT (envelope-from zec@fer.hr) Date: Sun, 21 Jun 2009 08:30:31 GMT Message-Id: <200906210830.n5L8UVCB058901@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164797 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2009 08:30:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=164797 Change 164797 by zec@zec_amdx4 on 2009/06/21 08:30:31 IFC @ 164795 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/msi.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/conf/GENERIC.hints#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/pmap.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/arm/conf/CAMBRIA.hints#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/include/pmap.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/if_npe.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_npe.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_npereg.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425var.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#14 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_proto.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscall.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscalls.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_sysent.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/syscalls.master#15 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_misc.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/conf/NOTES#31 integrate .. //depot/projects/vimage-commit2/src/sys/conf/files#44 integrate .. //depot/projects/vimage-commit2/src/sys/conf/options#34 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cas/if_cas.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/cas/if_casreg.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/cas/if_casvar.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/common/cxgb_t3_cpl.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_adapter.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_main.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_multiq.c#9 delete .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_osdep.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_sge.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/sys/cxgb_support.c#5 delete .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/sys/mvec.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/sys/uipc_mvec.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_bufs.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_context.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/i915_dma.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/i915_drv.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/i915_irq.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/fxp/if_fxp.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/fxp/if_fxpvar.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/if_ndis/if_ndis.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/dev/puc/pucdata.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/syscons/scterm-teken.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/syscons/teken/teken.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/net/if_cdce.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/umodem.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.h#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_uath.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/fs/devfs/devfs_vnops.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfs/nfs.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfs/nfs_commonport.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfs/nfsport.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clbio.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clkrpc.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clport.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clvnops.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsserver/nfs_nfsdkrpc.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsserver/nfs_nfsdport.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsserver/nfs_nfsdstate.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/fs/portalfs/portal.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/fs/portalfs/portal_vnops.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/fs/unionfs/union_vnops.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/geom/label/g_label_gpt.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/gnu/fs/ext2fs/ext2_lookup.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/gnu/fs/ext2fs/ext2_vnops.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/msi.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/i386/ibcs2/ibcs2_isc_sysent.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/i386/ibcs2/ibcs2_xenix_sysent.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/cpufunc.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/specialreg.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/ia64/ia64/vm_machdep.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/kern/init_sysent.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_acct.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_descrip.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exec.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exit.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#27 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_lock.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_lockf.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_mbuf.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_proc.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_prot.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_sysctl.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#55 integrate .. //depot/projects/vimage-commit2/src/sys/kern/makesyscalls.sh#4 integrate .. //depot/projects/vimage-commit2/src/sys/kern/syscalls.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/syscalls.master#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/systrace_args.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/sysv_msg.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty.c#27 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_usrreq.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_export.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/mips/adm5120/if_admsw.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/mips/conf/.cvsignore#1 branch .. //depot/projects/vimage-commit2/src/sys/mips/idt/idtpci.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/mips/idt/if_kr.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/Makefile#26 integrate .. //depot/projects/vimage-commit2/src/sys/modules/acpi/acpi/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/cas/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/cxgb/cxgb/Makefile#6 integrate .. //depot/projects/vimage-commit2/src/sys/modules/wlan/Makefile#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/bpf.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#77 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_enc.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gre.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_tun.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#32 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_wds.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netatalk/ddp_output.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_proto.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_var.h#19 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_dummynet.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_indata.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_input.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_output.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_input.c#39 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_output.c#23 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#55 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timer.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_usrreq.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_var.h#18 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_proto.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/key.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_tcp.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/netipx/ipx_usrreq.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/netipx/spx.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netipx/spx_reass.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/netipx/spx_usrreq.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/netipx/spx_var.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_bio.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvkrpc.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvsock.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvsubs.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/nlm/nlm_prot_impl.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/include/spr.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/cpu.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_auth.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_auth_unix.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_generic.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_vc.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/security/mac_biba/mac_biba.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/security/mac_lomac/mac_lomac.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/sparc64/conf/GENERIC#14 integrate .. //depot/projects/vimage-commit2/src/sys/sys/jail.h#13 integrate .. //depot/projects/vimage-commit2/src/sys/sys/lockmgr.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/mbuf.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/sys/param.h#45 integrate .. //depot/projects/vimage-commit2/src/sys/sys/priv.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/sys/sockio.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/syscall.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/sys/syscall.mk#7 integrate .. //depot/projects/vimage-commit2/src/sys/sys/sysctl.h#22 integrate .. //depot/projects/vimage-commit2/src/sys/sys/syslimits.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/sys/sysproto.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/sys/ucred.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/sys/user.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#74 integrate .. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_dirhash.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_lookup.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_vnops.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/vm/device_pager.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/vm/uma_core.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_contig.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_extern.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_page.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_phys.c#2 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/msi.c#4 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.10 2009/01/29 09:22:56 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.11 2009/06/15 13:47:49 mav Exp $"); #include #include @@ -210,6 +210,8 @@ old_id = msi->msi_cpu; if (old_vector && old_id == apic_id) return; + if (old_vector && !msi->msi_msix && msi->msi_first->msi_count > 1) + return; /* Allocate IDT vector on this cpu. */ vector = apic_alloc_vector(apic_id, msi->msi_irq); if (vector == 0) ==== //depot/projects/vimage-commit2/src/sys/amd64/conf/GENERIC.hints#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.20 2009/05/14 21:53:35 jhb Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.21 2009/06/15 21:55:29 ps Exp $ hint.fdc.0.at="isa" hint.fdc.0.port="0x3F0" hint.fdc.0.irq="6" @@ -24,3 +24,6 @@ hint.uart.1.irq="3" hint.ppc.0.at="isa" hint.ppc.0.irq="7" +hint.atrtc.0.at="isa" +hint.atrtc.0.port="0x70" +hint.atrtc.0.irq="8" ==== //depot/projects/vimage-commit2/src/sys/arm/arm/pmap.c#8 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.109 2009/06/08 12:15:39 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.110 2009/06/18 20:42:37 thompsa Exp $"); #include #include #include @@ -200,8 +200,7 @@ static void pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t, int); -static __inline void pmap_fix_cache(struct vm_page *, pmap_t, - vm_offset_t); +static void pmap_fix_cache(struct vm_page *, pmap_t, vm_offset_t); static void pmap_alloc_l1(pmap_t); static void pmap_free_l1(pmap_t); static void pmap_use_l1(pmap_t); @@ -406,7 +405,7 @@ #define pmap_is_current(pm) ((pm) == pmap_kernel() || \ curproc->p_vmspace->vm_map.pmap == (pm)) -static uma_zone_t pvzone; +static uma_zone_t pvzone = NULL; uma_zone_t l2zone; static uma_zone_t l2table_zone; static vm_offset_t pmap_kernel_l2dtable_kva; @@ -1451,6 +1450,7 @@ * kernel writable or kernel readable with writable user entry */ if ((kwritable && entries) || + (kwritable > 1) || ((kwritable != writable) && kentries && (pv->pv_pmap == pmap_kernel() || (pv->pv_flags & PVF_WRITE) || @@ -1472,7 +1472,8 @@ continue; } /* user is no longer sharable and writable */ - if (pm != pmap_kernel() && (pv->pv_pmap == pm) && + if (pm != pmap_kernel() && + (pv->pv_pmap == pm || pv->pv_pmap == pmap_kernel()) && !pmwc && (pv->pv_flags & PVF_NC)) { pv->pv_flags &= ~(PVF_NC | PVF_MWC); @@ -1674,7 +1675,29 @@ vm_offset_t va, u_int flags) { + int km; + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + + if (pg->md.pv_kva) { + /* PMAP_ASSERT_LOCKED(pmap_kernel()); */ + pve->pv_pmap = pmap_kernel(); + pve->pv_va = pg->md.pv_kva; + pve->pv_flags = PVF_WRITE | PVF_UNMAN; + pg->md.pv_kva = 0; + + TAILQ_INSERT_HEAD(&pg->md.pv_list, pve, pv_list); + TAILQ_INSERT_HEAD(&pm->pm_pvlist, pve, pv_plist); + if ((km = PMAP_OWNED(pmap_kernel()))) + PMAP_UNLOCK(pmap_kernel()); + vm_page_unlock_queues(); + if ((pve = pmap_get_pv_entry()) == NULL) + panic("pmap_kenter_internal: no pv entries"); + vm_page_lock_queues(); + if (km) + PMAP_LOCK(pmap_kernel()); + } + PMAP_ASSERT_LOCKED(pm); pve->pv_pmap = pm; pve->pv_va = va; @@ -1742,6 +1765,7 @@ pmap_nuke_pv(struct vm_page *pg, pmap_t pm, struct pv_entry *pve) { + struct pv_entry *pv; mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_ASSERT_LOCKED(pm); TAILQ_REMOVE(&pg->md.pv_list, pve, pv_list); @@ -1766,6 +1790,20 @@ vm_page_flag_clear(pg, PG_WRITEABLE); } } + pv = TAILQ_FIRST(&pg->md.pv_list); + if (pv != NULL && (pv->pv_flags & PVF_UNMAN) && + TAILQ_NEXT(pv, pv_list) == NULL) { + pg->md.pv_kva = pv->pv_va; + /* a recursive pmap_nuke_pv */ + TAILQ_REMOVE(&pg->md.pv_list, pv, pv_list); + TAILQ_REMOVE(&pm->pm_pvlist, pv, pv_plist); + if (pv->pv_flags & PVF_WIRED) + --pm->pm_stats.wired_count; + pg->md.pvh_attrs &= ~PVF_REF; + pg->md.pvh_attrs &= ~PVF_MOD; + vm_page_flag_clear(pg, PG_WRITEABLE); + pmap_free_pv_entry(pv); + } } static struct pv_entry * @@ -1784,6 +1822,9 @@ pve = TAILQ_NEXT(pve, pv_list); } + if (pve == NULL && pg->md.pv_kva == va) + pg->md.pv_kva = 0; + return(pve); /* return removed pve */ } /* @@ -2711,8 +2752,8 @@ cpu_idcache_wbinv_all(); cpu_l2cache_wbinv_all(); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { - if (pv->pv_flags & PVF_WIRED) { - /* The page is wired, cannot remove it now. */ + if (pv->pv_flags & PVF_WIRED || pv->pv_flags & PVF_UNMAN) { + /* Cannot remove wired or unmanaged pages now. */ npv = TAILQ_NEXT(pv, pv_plist); continue; } @@ -2822,6 +2863,9 @@ struct l2_bucket *l2b; pt_entry_t *pte; pt_entry_t opte; + struct pv_entry *pve; + vm_page_t m; + PDEBUG(1, printf("pmap_kenter: va = %08x, pa = %08x\n", (uint32_t) va, (uint32_t) pa)); @@ -2835,10 +2879,7 @@ PDEBUG(1, printf("pmap_kenter: pte = %08x, opte = %08x, npte = %08x\n", (uint32_t) pte, opte, *pte)); if (l2pte_valid(opte)) { - cpu_dcache_wbinv_range(va, PAGE_SIZE); - cpu_l2cache_wbinv_range(va, PAGE_SIZE); - cpu_tlb_flushD_SE(va); - cpu_cpwait(); + pmap_kremove(va); } else { if (opte == 0) l2b->l2b_occupancy++; @@ -2850,6 +2891,33 @@ if (flags & KENTER_USER) *pte |= L2_S_PROT_U; PTE_SYNC(pte); + + /* kernel direct mappings can be shared, so use a pv_entry + * to ensure proper caching. + * + * The pvzone is used to delay the recording of kernel + * mappings until the VM is running. + * + * This expects the physical memory to have vm_page_array entry. + */ + if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa))) { + vm_page_lock_queues(); + if (!TAILQ_EMPTY(&m->md.pv_list) || m->md.pv_kva) { + /* release vm_page lock for pv_entry UMA */ + vm_page_unlock_queues(); + if ((pve = pmap_get_pv_entry()) == NULL) + panic("pmap_kenter_internal: no pv entries"); + vm_page_lock_queues(); + PMAP_LOCK(pmap_kernel()); + pmap_enter_pv(m, pve, pmap_kernel(), va, + PVF_WRITE | PVF_UNMAN); + pmap_fix_cache(m, pmap_kernel(), va); + PMAP_UNLOCK(pmap_kernel()); + } else { + m->md.pv_kva = va; + } + vm_page_unlock_queues(); + } } void @@ -2886,6 +2954,9 @@ { struct l2_bucket *l2b; pt_entry_t *pte, opte; + struct pv_entry *pve; + vm_page_t m; + vm_offset_t pa; l2b = pmap_get_l2_bucket(pmap_kernel(), va); if (!l2b) @@ -2894,6 +2965,25 @@ pte = &l2b->l2b_kva[l2pte_index(va)]; opte = *pte; if (l2pte_valid(opte)) { + /* pa = vtophs(va) taken from pmap_extract() */ + switch (opte & L2_TYPE_MASK) { + case L2_TYPE_L: + pa = (opte & L2_L_FRAME) | (va & L2_L_OFFSET); + break; + default: + pa = (opte & L2_S_FRAME) | (va & L2_S_OFFSET); + break; + } + /* note: should never have to remove an allocation + * before the pvzone is initialized. + */ + vm_page_lock_queues(); + PMAP_LOCK(pmap_kernel()); + if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa)) && + (pve = pmap_remove_pv(m, pmap_kernel(), va))) + pmap_free_pv_entry(pve); + PMAP_UNLOCK(pmap_kernel()); + vm_page_unlock_queues(); cpu_dcache_wbinv_range(va, PAGE_SIZE); cpu_l2cache_wbinv_range(va, PAGE_SIZE); cpu_tlb_flushD_SE(va); @@ -3137,16 +3227,24 @@ cpu_l2cache_inv_range(pv->pv_va, PAGE_SIZE); } - l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va); - KASSERT(l2b != NULL, ("No l2 bucket")); - ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; - *ptep = 0; - PTE_SYNC_CURRENT(pv->pv_pmap, ptep); - pmap_free_l2_bucket(pv->pv_pmap, l2b, 1); - if (pv->pv_flags & PVF_WIRED) - pv->pv_pmap->pm_stats.wired_count--; - pv->pv_pmap->pm_stats.resident_count--; - flags |= pv->pv_flags; + if (pv->pv_flags & PVF_UNMAN) { + /* remove the pv entry, but do not remove the mapping + * and remember this is a kernel mapped page + */ + m->md.pv_kva = pv->pv_va; + } else { + /* remove the mapping and pv entry */ + l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va); + KASSERT(l2b != NULL, ("No l2 bucket")); + ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; + *ptep = 0; + PTE_SYNC_CURRENT(pv->pv_pmap, ptep); + pmap_free_l2_bucket(pv->pv_pmap, l2b, 1); + if (pv->pv_flags & PVF_WIRED) + pv->pv_pmap->pm_stats.wired_count--; + pv->pv_pmap->pm_stats.resident_count--; + flags |= pv->pv_flags; + } pmap_nuke_pv(m, pv->pv_pmap, pv); PMAP_UNLOCK(pv->pv_pmap); pmap_free_pv_entry(pv); @@ -3428,25 +3526,19 @@ * It is part of our managed memory so we * must remove it from the PV list */ - pve = pmap_remove_pv(opg, pmap, va); - if (m && (m->flags & (PG_UNMANAGED | PG_FICTITIOUS)) && - pve) - pmap_free_pv_entry(pve); - else if (!pve && - !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS))) - pve = pmap_get_pv_entry(); - KASSERT(pve != NULL || m->flags & (PG_UNMANAGED | - PG_FICTITIOUS), ("No pv")); - oflags = pve->pv_flags; - + if ((pve = pmap_remove_pv(opg, pmap, va))) { + + /* note for patch: the oflags/invalidation was moved + * because PG_FICTITIOUS pages could free the pve + */ + oflags = pve->pv_flags; /* * If the old mapping was valid (ref/mod * emulation creates 'invalid' mappings * initially) then make sure to frob * the cache. */ - if ((oflags & PVF_NC) == 0 && - l2pte_valid(opte)) { + if ((oflags & PVF_NC) == 0 && l2pte_valid(opte)) { if (PV_BEEN_EXECD(oflags)) { pmap_idcache_wbinv_range(pmap, va, PAGE_SIZE); @@ -3456,15 +3548,43 @@ PAGE_SIZE, TRUE, (oflags & PVF_WRITE) == 0); } - } - } else if (m && !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS))) - if ((pve = pmap_get_pv_entry()) == NULL) { - panic("pmap_enter: no pv entries"); + } + + /* free/allocate a pv_entry for UNMANAGED pages if + * this physical page is not/is already mapped. + */ + + if (m && ((m->flags & PG_FICTITIOUS) || + ((m->flags & PG_UNMANAGED) && + !m->md.pv_kva && + TAILQ_EMPTY(&m->md.pv_list)))) { + pmap_free_pv_entry(pve); + pve = NULL; + } + } else if (m && !(m->flags & PG_FICTITIOUS) && + (!(m->flags & PG_UNMANAGED) || m->md.pv_kva || + !TAILQ_EMPTY(&m->md.pv_list))) + pve = pmap_get_pv_entry(); + } else if (m && !(m->flags & PG_FICTITIOUS) && + (!(m->flags & PG_UNMANAGED) || m->md.pv_kva || + !TAILQ_EMPTY(&m->md.pv_list))) + pve = pmap_get_pv_entry(); + + if (m && !(m->flags & PG_FICTITIOUS)) { + KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva, + ("pmap_enter: managed mapping within the clean submap")); + if (m->flags & PG_UNMANAGED) { + if (!TAILQ_EMPTY(&m->md.pv_list) || + m->md.pv_kva) { + KASSERT(pve != NULL, ("No pv")); + nflags |= PVF_UNMAN; + pmap_enter_pv(m, pve, pmap, va, nflags); + } else + m->md.pv_kva = va; + } else { + KASSERT(pve != NULL, ("No pv")); + pmap_enter_pv(m, pve, pmap, va, nflags); } - if (m && !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS))) { - KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva, - ("pmap_enter: managed mapping within the clean submap")); - pmap_enter_pv(m, pve, pmap, va, nflags); } } /* ==== //depot/projects/vimage-commit2/src/sys/arm/conf/CAMBRIA.hints#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/arm/conf/CAMBRIA.hints,v 1.4 2009/04/21 22:48:12 stas Exp $ +# $FreeBSD: src/sys/arm/conf/CAMBRIA.hints,v 1.5 2009/06/17 17:58:18 sam Exp $ # # Device wiring for the Gateworks Cambria 2358. @@ -21,11 +21,11 @@ hint.npe.0.mac="C" hint.npe.0.mii="C" hint.npe.0.phy=1 -#hint.npe.1.at="ixp0" -#hint.npe.1.npeid="A" -#hint.npe.1.mac="A" -#hint.npe.1.mii="C" -#hint.npe.1.phy=2 +hint.npe.1.at="ixp0" +hint.npe.1.npeid="A" +hint.npe.1.mac="A" +hint.npe.1.mii="C" +hint.npe.1.phy=2 # FLASH hint.cfi.0.at="ixp0" ==== //depot/projects/vimage-commit2/src/sys/arm/include/pmap.h#4 (text+ko) ==== @@ -44,7 +44,7 @@ * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 * from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30 * - * $FreeBSD: src/sys/arm/include/pmap.h,v 1.31 2009/05/07 05:42:13 alc Exp $ + * $FreeBSD: src/sys/arm/include/pmap.h,v 1.32 2009/06/18 20:42:37 thompsa Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -94,6 +94,7 @@ struct md_page { int pvh_attrs; + vm_offset_t pv_kva; /* first kernel VA mapping */ TAILQ_HEAD(,pv_entry) pv_list; }; @@ -494,6 +495,7 @@ #define PVF_EXEC 0x10 /* mapping is executable */ #define PVF_NC 0x20 /* mapping is non-cacheable */ #define PVF_MWC 0x40 /* mapping is used multiple times in userland */ +#define PVF_UNMAN 0x80 /* mapping is unmanaged */ void vector_page_setprot(int); ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/if_npe.c#8 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.18 2009/06/11 17:05:13 avg Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.19 2009/06/17 02:53:05 sam Exp $"); /* * Intel XScale NPE Ethernet driver. @@ -153,9 +153,9 @@ * multi-port processing. It may be better to handle * all traffic through one Q (as done by the Intel drivers). * - * Note that the PHY's are accessible only from MAC A - * on the IXP425. This and other platform-specific - * assumptions probably need to be handled through hints. + * Note that the PHY's are accessible only from MAC B on the + * IXP425 and from MAC C on other devices. This and other + * platform-specific assumptions are handled with hints. */ static const struct { uint32_t macbase; @@ -177,7 +177,7 @@ }, [NPE_B] = { .macbase = IXP425_MAC_B_HWBASE, - .miibase = IXP425_MAC_C_HWBASE, + .miibase = IXP425_MAC_B_HWBASE, .phy = 0, .rx_qid = 4, .rx_freeqid = 27, @@ -186,7 +186,7 @@ }, [NPE_C] = { .macbase = IXP425_MAC_C_HWBASE, - .miibase = IXP425_MAC_C_HWBASE, + .miibase = IXP425_MAC_B_HWBASE, .phy = 1, .rx_qid = 12, .rx_freeqid = 28, @@ -239,6 +239,7 @@ static int npe_setrxqosentry(struct npe_softc *, int classix, int trafclass, int qid); +static int npe_setportaddress(struct npe_softc *, const uint8_t mac[]); static int npe_setfirewallmode(struct npe_softc *, int onoff); static int npe_updatestats(struct npe_softc *); #if 0 @@ -666,7 +667,7 @@ static int npe_activate(device_t dev) { - struct npe_softc * sc = device_get_softc(dev); + struct npe_softc *sc = device_get_softc(dev); int error, i, macbase, miibase; /* @@ -1024,7 +1025,7 @@ struct txdone *td, q[NPE_MAX]; uint32_t entry; - /* XXX no NPE-A support */ + q[NPE_A].tail = &q[NPE_A].head; q[NPE_A].count = 0; q[NPE_B].tail = &q[NPE_B].head; q[NPE_B].count = 0; q[NPE_C].tail = &q[NPE_C].head; q[NPE_C].count = 0; /* XXX max # at a time? */ @@ -1043,6 +1044,8 @@ td->count++; } + if (q[NPE_A].count) + npe_txdone_finish(npes[NPE_A], &q[NPE_A]); if (q[NPE_B].count) npe_txdone_finish(npes[NPE_B], &q[NPE_B]); if (q[NPE_C].count) @@ -1252,6 +1255,7 @@ WR4(sc, NPE_MAC_RX_CNTRL2, 0); npe_setmac(sc, IF_LLADDR(ifp)); + npe_setportaddress(sc, IF_LLADDR(ifp)); npe_setmcast(sc); npe_startxmit(sc); @@ -1552,6 +1556,22 @@ } static int +npe_setportaddress(struct npe_softc *sc, const uint8_t mac[ETHER_ADDR_LEN]) +{ + uint32_t msg[2]; + + msg[0] = (NPE_SETPORTADDRESS << 24) + | (sc->sc_npeid << 20) + | (mac[0] << 8) + | (mac[1] << 0); + msg[1] = (mac[2] << 24) + | (mac[3] << 16) + | (mac[4] << 8) + | (mac[5] << 0); + return ixpnpe_sendandrecvmsg_sync(sc->sc_npe, msg, msg); +} + +static int npe_setfirewallmode(struct npe_softc *sc, int onoff) { uint32_t msg[2]; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#7 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.19 2009/06/11 17:05:13 avg Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.20 2009/06/17 02:51:16 sam Exp $"); #include "opt_ddb.h" @@ -85,6 +85,12 @@ return bits; } +void +ixp4xx_write_feature_bits(uint32_t v) +{ + IXPREG(IXP425_EXP_VBASE + EXP_FCTRL_OFFSET) = ~v; +} + struct arm32_dma_range * bus_dma_get_range(void) { ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_npe.c#3 (text+ko) ==== @@ -57,7 +57,7 @@ * SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.10 2008/12/23 04:51:46 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.12 2009/06/17 17:57:52 sam Exp $"); /* * Intel XScale Network Processing Engine (NPE) support. @@ -306,8 +306,14 @@ sc->sc_nrefs = 1; sc->sc_size = config->size; - sc->insMemSize = config->ins_memsize; /* size of instruction memory */ - sc->dataMemSize = config->data_memsize; /* size of data memory */ + if (cpu_is_ixp42x()) { + /* NB: instruction/data memory sizes are NPE-dependent */ + sc->insMemSize = config->ins_memsize; + sc->dataMemSize = config->data_memsize; + } else { + sc->insMemSize = IXP46X_NPEDL_INS_MEMSIZE_WORDS; + sc->dataMemSize = IXP46X_NPEDL_DATA_MEMSIZE_WORDS; + } if (bus_space_map(sc->sc_iot, config->base, sc->sc_size, 0, &sc->sc_ioh)) panic("%s: Cannot map registers", device_get_name(dev)); @@ -798,20 +804,34 @@ IX_NPEDL_CTXT_REG_RESET_CINDEX, }; -#define IX_NPEDL_RESET_NPE_PARITY 0x0800 #define IX_NPEDL_PARITY_BIT_MASK 0x3F00FFFF #define IX_NPEDL_CONFIG_CTRL_REG_MASK 0x3F3FFFFF +#if 0 +/* + * Reset the NPE and its coprocessor using the + * fuse bits in the feature control register. + */ +static void +npe_reset(int npeid) +{ + uint32_t mask = EXP_FCTRL_NPEA << npeid; + uint32_t v; + + v = ixp4xx_read_feature_bits(); + ixp4xx_write_feature_bits(v &~ mask); + /* un-fuse and un-reset the NPE & coprocessor */ + ixp4xx_write_feature_bits(v | mask); +} +#endif + static int npe_cpu_reset(struct ixpnpe_softc *sc) { #define N(a) (sizeof(a) / sizeof(a[0])) - struct ixp425_softc *sa = - device_get_softc(device_get_parent(sc->sc_dev)); uint32_t ctxtReg; /* identifies Context Store reg (0-3) */ uint32_t regAddr; uint32_t regVal; - uint32_t resetNpeParity; uint32_t ixNpeConfigCtrlRegVal; int i, error = 0; @@ -929,33 +949,15 @@ /* Reset the Watch-count register */ npe_reg_write(sc, IX_NPEDL_REG_OFFSET_WC, 0); - +#if 0 /* * WR IXA00055043 - Remove IMEM Parity Introduced by NPE Reset Operation + * XXX Removed because it breaks IXP435 operation; e.g. on Gateworks + * XXX 2358 boards reseting NPE-A after NPE-C is running causes both + * XXX npe's to stop working */ - - /* - * Reset the NPE and its coprocessor - to reset internal - * states and remove parity error. Note this makes no - * sense based on the documentation. The feature control - * register always reads back as 0 on the ixp425 and further - * the bit definition of NPEA/NPEB is off by 1 according to - * the Intel documention--so we're blindly following the - * Intel code w/o any real understanding. - */ - regVal = EXP_BUS_READ_4(sa, EXP_FCTRL_OFFSET); - DPRINTFn(2, sc->sc_dev, "%s: FCTRL 0x%x\n", __func__, regVal); - resetNpeParity = - IX_NPEDL_RESET_NPE_PARITY << (1 + device_get_unit(sc->sc_dev)); - DPRINTFn(2, sc->sc_dev, "%s: FCTRL fuse parity, write 0x%x\n", - __func__, regVal | resetNpeParity); - EXP_BUS_WRITE_4(sa, EXP_FCTRL_OFFSET, regVal | resetNpeParity); - - /* un-fuse and un-reset the NPE & coprocessor */ - DPRINTFn(2, sc->sc_dev, "%s: FCTRL unfuse parity, write 0x%x\n", - __func__, regVal & resetNpeParity); - EXP_BUS_WRITE_4(sa, EXP_FCTRL_OFFSET, regVal &~ resetNpeParity); - + npe_reset(sc->sc_npeid); +#endif /* * Call NpeMgr function to stop the NPE again after the Feature Control * has unfused and Un-Reset the NPE and its associated Coprocessors. ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_npereg.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. * - * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npereg.h,v 1.1 2006/11/19 23:55:23 sam Exp $ + * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npereg.h,v 1.2 2009/06/17 02:55:53 sam Exp $ */ /*- @@ -95,7 +95,6 @@ /* * Instruction and Data Memory Size (in words) for each NPE */ -#ifndef __ixp46X #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEA 4096 #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEB 2048 #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEC 2048 @@ -103,15 +102,9 @@ #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEA 2048 #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEB 2048 #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEC 2048 -#else -#define IX_NPEDL_INS_MEMSIZE_WORDS_NPEA 4096 -#define IX_NPEDL_INS_MEMSIZE_WORDS_NPEB 4096 -#define IX_NPEDL_INS_MEMSIZE_WORDS_NPEC 4096 -#define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEA 4096 -#define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEB 4096 -#define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEC 4096 -#endif +#define IXP46X_NPEDL_INS_MEMSIZE_WORDS 4096 +#define IXP46X_NPEDL_DATA_MEMSIZE_WORDS 4096 /* BAR offsets */ #define IX_NPEDL_REG_OFFSET_EXAD 0x00000000 /* Execution Address */ ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425var.h#3 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425var.h,v 1.6 2008/12/23 04:48:27 sam Exp $ + * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425var.h,v 1.7 2009/06/17 02:51:16 sam Exp $ * */ @@ -101,6 +101,7 @@ uint32_t ixp425_sdram_size(void); uint32_t ixp435_ddram_size(void); uint32_t ixp4xx_read_feature_bits(void); +void ixp4xx_write_feature_bits(uint32_t); int ixp425_md_route_interrupt(device_t, device_t, int); void ixp425_md_attach(device_t); ==== //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#14 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.141 2009/06/10 02:07:58 yongari Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $ ############################################################## ### Basic configuration options ############################ @@ -221,6 +221,7 @@ if_bce_load="NO" # Broadcom NetXtreme II Gigabit Ethernet if_bfe_load="NO" # Broadcom BCM4401 if_bge_load="NO" # Broadcom BCM570x PCI Gigabit Ethernet +if_cas_load="NO" # Sun Cassini/Cassini+ and NS DP83065 Saturn if_cm_load="NO" # SMC (90c26, 90c56, 90c66) if_cs_load="NO" # Crystal Semiconductor CS8920 if_cue_load="NO" # CATC USB-EL1210A USB Ethernet ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#7 (text+ko) ==== @@ -158,7 +158,7 @@ */ static int arc_min_prefetch_lifespan; -extern int zfs_prefetch_enable; +extern int zfs_prefetch_disable; static int arc_dead; /* @@ -3552,21 +3552,21 @@ mutex_init(&zfs_write_limit_lock, NULL, MUTEX_DEFAULT, NULL); #ifdef _KERNEL - if (TUNABLE_INT_FETCH("vfs.zfs.prefetch_enable", &zfs_prefetch_enable)) + if (TUNABLE_INT_FETCH("vfs.zfs.prefetch_disable", &zfs_prefetch_disable)) prefetch_tunable_set = 1; #ifdef __i386__ if (prefetch_tunable_set == 0) { printf("ZFS NOTICE: prefetch is disabled by default on i386" " - add enable to tunable to change.\n" ); - zfs_prefetch_enable=0; + zfs_prefetch_disable=1; } #else if ((((uint64_t)physmem * PAGESIZE) < (1ULL << 32)) && prefetch_tunable_set == 0) { printf("ZFS NOTICE: system has less than 4GB and prefetch enable is not set" "... disabling.\n"); - zfs_prefetch_enable=0; + zfs_prefetch_disable=1; } #endif /* Warn about ZFS memory and address space requirements. */ ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#5 (text+ko) ==== @@ -326,7 +326,7 @@ uint64_t blkid; int nblks, i, err; - if (zfs_prefetch_enable == 0) + if (zfs_prefetch_disable) return; if (len == 0) { /* they're interested in the bonus buffer */ ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#5 (text+ko) ==== @@ -37,7 +37,7 @@ * until we can get this working the way we want it to. */ -int zfs_prefetch_enable = 1; +int zfs_prefetch_disable = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<<