PERFORCE change 145421 for review
Marko Zec
zec at FreeBSD.org
Fri Jul 18 11:01:07 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=145421
Change 145421 by zec at zec_tpx32 on 2008/07/18 11:00:23
IFC (using Julian's update.sh script for the first time)
Affected files ...
.. //depot/projects/vimage/src/sys/Makefile#9 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/busdma_machdep.c#7 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#10 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/minidump_machdep.c#8 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/mp_machdep.c#9 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#18 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/GENERIC#17 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/GENERIC.hints#3 integrate
.. //depot/projects/vimage/src/sys/amd64/include/pmap.h#6 integrate
.. //depot/projects/vimage/src/sys/amd64/include/vmparam.h#8 integrate
.. //depot/projects/vimage/src/sys/arm/at91/if_atereg.h#2 integrate
.. //depot/projects/vimage/src/sys/boot/forth/loader.conf#10 integrate
.. //depot/projects/vimage/src/sys/boot/i386/boot2/boot2.c#4 integrate
.. //depot/projects/vimage/src/sys/boot/pc98/boot2/README.serial.98#2 delete
.. //depot/projects/vimage/src/sys/cam/scsi/scsi_da.c#13 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#9 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#8 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#8 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#8 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#8 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#9 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#17 integrate
.. //depot/projects/vimage/src/sys/compat/pecoff/imgact_pecoff.c#6 delete
.. //depot/projects/vimage/src/sys/compat/pecoff/imgact_pecoff.h#2 delete
.. //depot/projects/vimage/src/sys/compat/svr4/svr4_stat.c#3 integrate
.. //depot/projects/vimage/src/sys/conf/NOTES#26 integrate
.. //depot/projects/vimage/src/sys/conf/files#30 integrate
.. //depot/projects/vimage/src/sys/conf/files.i386#14 integrate
.. //depot/projects/vimage/src/sys/conf/files.pc98#11 integrate
.. //depot/projects/vimage/src/sys/conf/kern.post.mk#6 integrate
.. //depot/projects/vimage/src/sys/conf/newvers.sh#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/COPYRIGHT#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/i386-elf.trlld.o.uu#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/if_oltr.c#3 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/if_oltr_isa.c#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/if_oltr_pci.c#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/if_oltrvar.h#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/trlld.h#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/trlldbm.c#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/trlldhm.c#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/oltr/trlldmac.c#2 delete
.. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_asus.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/arl/if_arl.c#3 delete
.. //depot/projects/vimage/src/sys/dev/arl/if_arl_isa.c#3 delete
.. //depot/projects/vimage/src/sys/dev/arl/if_arlreg.h#2 delete
.. //depot/projects/vimage/src/sys/dev/ata/ata-chipset.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-pci.h#10 integrate
.. //depot/projects/vimage/src/sys/dev/bm/if_bm.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/bm/if_bmreg.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/bm/if_bmvar.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ce/ceddk.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ce/if_ce.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ciss/ciss.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/ciss/cissio.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ciss/cissreg.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ciss/cissvar.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/cnw/if_cnw.c#4 delete
.. //depot/projects/vimage/src/sys/dev/cnw/if_cnwioctl.h#2 delete
.. //depot/projects/vimage/src/sys/dev/cnw/if_cnwreg.h#2 delete
.. //depot/projects/vimage/src/sys/dev/cp/cpddk.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/cp/if_cp.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/cs/if_cs.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/cs/if_csreg.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/ctau/ctddk.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ctau/if_ct.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/cx/cxddk.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/cx/if_cx.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/ed/if_ed_pccard.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/et/if_et.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/if_ndis/if_ndis.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/k8temp/k8temp.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/lmc/if_lmc.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/lmc/if_lmc.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/mii/rgephy.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/mii/rgephyreg.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/mpt/mpt_pci.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/mpt/mpt_user.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/mxge/if_mxge.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/pccard/pccarddevs#6 integrate
.. //depot/projects/vimage/src/sys/dev/re/if_re.c#16 integrate
.. //depot/projects/vimage/src/sys/dev/sbni/if_sbni.c#3 delete
.. //depot/projects/vimage/src/sys/dev/sbni/if_sbni_isa.c#3 delete
.. //depot/projects/vimage/src/sys/dev/sbni/if_sbni_pci.c#3 delete
.. //depot/projects/vimage/src/sys/dev/sbni/if_sbnireg.h#2 delete
.. //depot/projects/vimage/src/sys/dev/sbni/if_sbnivar.h#2 delete
.. //depot/projects/vimage/src/sys/dev/sbsh/if_sbsh.c#4 delete
.. //depot/projects/vimage/src/sys/dev/sbsh/if_sbshreg.h#2 delete
.. //depot/projects/vimage/src/sys/dev/sound/pci/atiixp.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#18 integrate
.. //depot/projects/vimage/src/sys/dev/syscons/daemon/daemon_saver.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ohci.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_ethersubr.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/vr/if_vr.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/vr/if_vrreg.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_rrip.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_vnops.c#11 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_node.c#6 integrate
.. //depot/projects/vimage/src/sys/geom/vinum/geom_vinum_drive.c#4 integrate
.. //depot/projects/vimage/src/sys/geom/vinum/geom_vinum_subr.c#3 integrate
.. //depot/projects/vimage/src/sys/geom/virstor/g_virstor.c#2 integrate
.. //depot/projects/vimage/src/sys/i386/conf/GENERIC#19 integrate
.. //depot/projects/vimage/src/sys/i386/conf/GENERIC.hints#8 integrate
.. //depot/projects/vimage/src/sys/i386/conf/NOTES#18 integrate
.. //depot/projects/vimage/src/sys/i386/i386/busdma_machdep.c#8 integrate
.. //depot/projects/vimage/src/sys/i386/i386/mp_machdep.c#10 integrate
.. //depot/projects/vimage/src/sys/i386/i386/pmap.c#16 integrate
.. //depot/projects/vimage/src/sys/i386/ibcs2/ibcs2_socksys.c#3 integrate
.. //depot/projects/vimage/src/sys/ia64/conf/GENERIC#9 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/busdma_machdep.c#5 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/machdep.c#14 integrate
.. //depot/projects/vimage/src/sys/ia64/include/ia64_cpu.h#4 integrate
.. //depot/projects/vimage/src/sys/kern/kern_alq.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/kern_conf.c#14 integrate
.. //depot/projects/vimage/src/sys/kern/kern_cpuset.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/kern_event.c#9 integrate
.. //depot/projects/vimage/src/sys/kern/kern_exec.c#12 integrate
.. //depot/projects/vimage/src/sys/kern/kern_fork.c#18 integrate
.. //depot/projects/vimage/src/sys/kern/kern_jail.c#10 integrate
.. //depot/projects/vimage/src/sys/kern/kern_malloc.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/kern_mib.c#10 integrate
.. //depot/projects/vimage/src/sys/kern/kern_poll.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/kern_xxx.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/link_elf.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/link_elf_obj.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/subr_param.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/subr_stack.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_debug.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_socket.c#18 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_usrreq.c#15 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_mount.c#17 integrate
.. //depot/projects/vimage/src/sys/libkern/memset.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/adm5120_machdep.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/adm5120reg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/admpci.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/console.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/files.adm5120#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/if_admsw.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/if_admswreg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/if_admswvar.h#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/obio.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/obiovar.h#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/std.adm5120#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_bus_adm5120.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_cpu_adm5120.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_dev_adm5120.c#1 branch
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_dev_adm5120.h#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/files.idt#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/idt_machdep.c#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/idtpci.c#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/idtreg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/if_kr.c#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/if_krreg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/obio.c#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/obiovar.h#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/std.idt#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/uart_bus_rc32434.c#1 branch
.. //depot/projects/vimage/src/sys/mips/idt/uart_cpu_rc32434.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/files.malta#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/gt.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/gt_pci.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/gtreg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/gtvar.h#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/malta_machdep.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/maltareg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/obio.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/obiovar.h#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/std.malta#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/uart_bus_maltausart.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/uart_cpu_maltausart.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/yamon.c#1 branch
.. //depot/projects/vimage/src/sys/mips/malta/yamon.h#1 branch
.. //depot/projects/vimage/src/sys/mips/mips/pmap.c#3 integrate
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/adm5120_machdep.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/adm5120reg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/admpci.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/console.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/files.adm5120#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/if_admsw.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/if_admswreg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/if_admswvar.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/obio.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/obiovar.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/std.adm5120#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/uart_bus_adm5120.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/uart_cpu_adm5120.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/uart_dev_adm5120.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/adm5120/uart_dev_adm5120.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/files.idt#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/idt_machdep.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/idtpci.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/idtreg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/if_kr.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/if_krreg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/obio.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/obiovar.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/std.idt#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/uart_bus_rc32434.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/idt/uart_cpu_rc32434.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/files.malta#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/gt.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/gt_pci.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/gtreg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/gtvar.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/malta_machdep.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/maltareg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/obio.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/obiovar.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/std.malta#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/uart_bus_maltausart.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/uart_cpu_maltausart.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/yamon.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/malta/yamon.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/files.sentry5#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/obio.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/obiovar.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/s5_machdep.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/s5reg.h#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/siba_cc.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/siba_mips.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/siba_sdram.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/uart_bus_sbusart.c#2 delete
.. //depot/projects/vimage/src/sys/mips/mips32/sentry5/uart_cpu_sbusart.c#2 delete
.. //depot/projects/vimage/src/sys/mips/sentry5/files.sentry5#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/obio.c#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/obiovar.h#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/s5_machdep.c#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/s5reg.h#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/siba_cc.c#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/siba_mips.c#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/siba_sdram.c#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/uart_bus_sbusart.c#1 branch
.. //depot/projects/vimage/src/sys/mips/sentry5/uart_cpu_sbusart.c#1 branch
.. //depot/projects/vimage/src/sys/modules/Makefile#23 integrate
.. //depot/projects/vimage/src/sys/modules/arl/Makefile#2 delete
.. //depot/projects/vimage/src/sys/modules/cnw/Makefile#2 delete
.. //depot/projects/vimage/src/sys/modules/oltr/Makefile#2 delete
.. //depot/projects/vimage/src/sys/modules/pecoff/Makefile#2 delete
.. //depot/projects/vimage/src/sys/modules/sbni/Makefile#2 delete
.. //depot/projects/vimage/src/sys/modules/sbsh/Makefile#2 delete
.. //depot/projects/vimage/src/sys/net/bpf.c#21 integrate
.. //depot/projects/vimage/src/sys/net/bpf.h#7 integrate
.. //depot/projects/vimage/src/sys/net/bpf_zerocopy.c#2 integrate
.. //depot/projects/vimage/src/sys/net/bpf_zerocopy.h#2 integrate
.. //depot/projects/vimage/src/sys/net/if_bridge.c#13 integrate
.. //depot/projects/vimage/src/sys/net/if_lagg.c#15 integrate
.. //depot/projects/vimage/src/sys/net/if_ppp.c#8 integrate
.. //depot/projects/vimage/src/sys/net/if_vlan.c#7 integrate
.. //depot/projects/vimage/src/sys/net/netisr.c#9 integrate
.. //depot/projects/vimage/src/sys/net/netisr.h#3 integrate
.. //depot/projects/vimage/src/sys/net/raw_cb.c#5 integrate
.. //depot/projects/vimage/src/sys/net/raw_cb.h#3 integrate
.. //depot/projects/vimage/src/sys/net/raw_usrreq.c#4 integrate
.. //depot/projects/vimage/src/sys/net/rtsock.c#12 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.c#8 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_output.c#12 integrate
.. //depot/projects/vimage/src/sys/netatalk/ddp_usrreq.c#4 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/common/ng_bluetooth.c#3 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/drivers/ubt/TODO#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#4 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/include/ng_bluetooth.h#3 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/include/ng_btsocket.h#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_base.c#30 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#7 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_ip_input.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/if_ether.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.c#23 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.h#14 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_carp.c#9 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_gre.c#3 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_input.c#27 integrate
.. //depot/projects/vimage/src/sys/netinet/raw_ip.c#20 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_asconf.c#19 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_asconf.h#11 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_bsd_addr.c#15 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_bsd_addr.h#8 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_cc_functions.h#3 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_constants.h#22 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_crc32.h#4 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#26 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.h#8 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_input.c#26 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_input.h#7 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#19 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_output.c#27 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_output.h#12 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_pcb.c#27 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_pcb.h#19 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_sysctl.h#9 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_timer.c#19 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_timer.h#7 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_uio.h#16 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_usrreq.c#28 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_var.h#19 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.c#28 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.h#17 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_output.c#16 integrate
.. //depot/projects/vimage/src/sys/netinet/udp_usrreq.c#25 integrate
.. //depot/projects/vimage/src/sys/netinet6/frag6.c#13 integrate
.. //depot/projects/vimage/src/sys/netinet6/icmp6.c#23 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_pcb.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_pcb.h#4 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_src.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_forward.c#11 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#29 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_var.h#12 integrate
.. //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#24 integrate
.. //depot/projects/vimage/src/sys/netinet6/sctp6_var.h#9 integrate
.. //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#24 integrate
.. //depot/projects/vimage/src/sys/netipsec/keysock.c#9 integrate
.. //depot/projects/vimage/src/sys/netipx/ipx_input.c#4 integrate
.. //depot/projects/vimage/src/sys/netnatm/natm_proto.c#3 integrate
.. //depot/projects/vimage/src/sys/nfsclient/bootp_subr.c#8 integrate
.. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#14 integrate
.. //depot/projects/vimage/src/sys/nfsserver/nfs_syscalls.c#9 integrate
.. //depot/projects/vimage/src/sys/nlm/nlm_advlock.c#3 integrate
.. //depot/projects/vimage/src/sys/nlm/nlm_prot_impl.c#6 integrate
.. //depot/projects/vimage/src/sys/pc98/conf/GENERIC#12 integrate
.. //depot/projects/vimage/src/sys/pc98/conf/NOTES#6 integrate
.. //depot/projects/vimage/src/sys/pc98/include/bus.h#2 integrate
.. //depot/projects/vimage/src/sys/pc98/pc98/busiosubr.c#2 integrate
.. //depot/projects/vimage/src/sys/pci/if_rlreg.h#12 integrate
.. //depot/projects/vimage/src/sys/powerpc/conf/GENERIC#12 integrate
.. //depot/projects/vimage/src/sys/rpc/authunix_prot.c#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/conf/GENERIC#11 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/in_cksum.h#3 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/in_cksum.c#2 integrate
.. //depot/projects/vimage/src/sys/sun4v/conf/GENERIC#11 integrate
.. //depot/projects/vimage/src/sys/sys/event.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/eventhandler.h#6 integrate
.. //depot/projects/vimage/src/sys/sys/imgact.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/ioctl_compat.h#4 integrate
.. //depot/projects/vimage/src/sys/sys/kernel.h#12 integrate
.. //depot/projects/vimage/src/sys/sys/libkern.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/link_elf.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/socketvar.h#10 integrate
.. //depot/projects/vimage/src/sys/sys/termios.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/ttycom.h#3 integrate
.. //depot/projects/vimage/src/sys/vm/swap_pager.c#12 integrate
.. //depot/projects/vimage/src/sys/vm/vm_kern.h#2 integrate
Differences ...
==== //depot/projects/vimage/src/sys/Makefile#9 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.49 2008/05/26 10:39:52 bz Exp $
+# $FreeBSD: src/sys/Makefile,v 1.50 2008/07/10 16:03:24 obrien Exp $
.include <bsd.own.mk>
@@ -12,9 +12,12 @@
gnu isa kern libkern modules net net80211 netatalk \
netgraph netinet netinet6 netipsec netipx netnatm netncp \
netsmb nfs nfs4client nfsclient nfsserver opencrypto pccard \
- pci rpc security sys ufs vm ${ARCHDIR}
-
-ARCHDIR ?= ${MACHINE}
+ pci rpc security sys ufs vm ${CSCOPE_ARCHDIR}
+.if defined(ALL_ARCH)
+CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips powerpc sparc64
+.else
+CSCOPE_ARCHDIR ?= ${MACHINE}
+.endif
# Loadable kernel modules
==== //depot/projects/vimage/src/sys/amd64/amd64/busdma_machdep.c#7 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.85 2008/02/12 16:24:30 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.86 2008/07/15 03:34:49 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -480,8 +480,6 @@
mflags = M_NOWAIT;
else
mflags = M_WAITOK;
- if (flags & BUS_DMA_ZERO)
- mflags |= M_ZERO;
/* If we succeed, no mapping/bouncing will be required */
*mapp = NULL;
@@ -489,13 +487,15 @@
if (dmat->segments == NULL) {
dmat->segments = (bus_dma_segment_t *)malloc(
sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF,
- M_NOWAIT);
+ mflags);
if (dmat->segments == NULL) {
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d",
__func__, dmat, dmat->flags, ENOMEM);
return (ENOMEM);
}
}
+ if (flags & BUS_DMA_ZERO)
+ mflags |= M_ZERO;
/*
* XXX:
@@ -531,7 +531,7 @@
pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize,
PAT_UNCACHEABLE);
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d",
- __func__, dmat, dmat->flags, ENOMEM);
+ __func__, dmat, dmat->flags, 0);
return (0);
}
==== //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#10 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.686 2008/04/25 05:18:47 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.687 2008/07/09 19:44:37 peter Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -1466,6 +1466,10 @@
_udatasel = GSEL(GUDATA_SEL, SEL_UPL);
_ucode32sel = GSEL(GUCODE32_SEL, SEL_UPL);
+ load_ds(_udatasel);
+ load_es(_udatasel);
+ load_fs(_udatasel);
+
/* setup proc 0's pcb */
thread0.td_pcb->pcb_flags = 0;
thread0.td_pcb->pcb_cr3 = KPML4phys;
==== //depot/projects/vimage/src/sys/amd64/amd64/minidump_machdep.c#8 (text) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.5 2008/06/20 20:59:31 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.6 2008/07/08 04:00:22 alc Exp $");
#include "opt_vimage.h"
@@ -209,7 +209,8 @@
/* Walk page table pages, set bits in vm_page_dump */
ptesize = 0;
pdp = (uint64_t *)PHYS_TO_DMAP(KPDPphys);
- for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += NBPDR) {
+ for (va = VM_MIN_KERNEL_ADDRESS; va < MAX(KERNBASE + NKPT * NBPDR,
+ kernel_vm_end); va += NBPDR) {
i = (va >> PDPSHIFT) & ((1ul << NPDPEPGSHIFT) - 1);
/*
* We always write a page, even if it is zero. Each
@@ -315,7 +316,8 @@
/* Dump kernel page table pages */
pdp = (uint64_t *)PHYS_TO_DMAP(KPDPphys);
- for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += NBPDR) {
+ for (va = VM_MIN_KERNEL_ADDRESS; va < MAX(KERNBASE + NKPT * NBPDR,
+ kernel_vm_end); va += NBPDR) {
i = (va >> PDPSHIFT) & ((1ul << NPDPEPGSHIFT) - 1);
/* We always write a page, even if it is zero */
if ((pdp[i] & PG_V) == 0) {
==== //depot/projects/vimage/src/sys/amd64/amd64/mp_machdep.c#9 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.289 2008/03/10 01:32:48 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.291 2008/07/09 19:44:37 peter Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -79,7 +79,6 @@
int mp_naps; /* # of Applications processors */
int boot_cpu_id = -1; /* designated BSP */
-extern int nkpt;
extern struct pcpu __pcpu[];
@@ -99,6 +98,8 @@
/* SMP page table page */
extern pt_entry_t *SMPpt;
+extern int _udatasel;
+
struct pcb stoppcbs[MAXCPU];
/* Variables needed for SMP tlb shootdown. */
@@ -565,7 +566,9 @@
*/
load_cr4(rcr4() | CR4_PGE);
-
+ load_ds(_udatasel);
+ load_es(_udatasel);
+ load_fs(_udatasel);
mtx_unlock_spin(&ap_boot_mtx);
/* wait until all the AP's are up */
==== //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#18 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.623 2008/06/21 19:19:09 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.632 2008/07/13 18:19:53 alc Exp $");
/*
* Manages physical address maps.
@@ -173,10 +173,9 @@
vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */
vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */
-static int nkpt;
static int ndmpdp;
static vm_paddr_t dmaplimit;
-vm_offset_t kernel_vm_end;
+vm_offset_t kernel_vm_end = VM_MIN_KERNEL_ADDRESS;
pt_entry_t pg_nx;
SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters");
@@ -227,6 +226,7 @@
vm_prot_t prot);
static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
vm_page_t m, vm_prot_t prot, vm_page_t mpte);
+static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte);
static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte);
static boolean_t pmap_is_modified_pvh(struct md_page *pvh);
static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va);
@@ -441,10 +441,8 @@
/* Read-only from zero to physfree */
/* XXX not fully used, underneath 2M pages */
for (i = 0; (i << PAGE_SHIFT) < *firstaddr; i++) {
- ((pt_entry_t *)KPTphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) /
- PAGE_SIZE + i] = i << PAGE_SHIFT;
- ((pt_entry_t *)KPTphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) /
- PAGE_SIZE + i] |= PG_RW | PG_V | PG_G;
+ ((pt_entry_t *)KPTphys)[i] = i << PAGE_SHIFT;
+ ((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V | PG_G;
}
/* Now map the page tables at their location within PTmap */
@@ -456,10 +454,8 @@
/* Map from zero to end of allocations under 2M pages */
/* This replaces some of the KPTphys entries above */
for (i = 0; (i << PDRSHIFT) < *firstaddr; i++) {
- ((pd_entry_t *)KPDphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) /
- NBPDR + i] = i << PDRSHIFT;
- ((pd_entry_t *)KPDphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) /
- NBPDR + i] |= PG_RW | PG_V | PG_PS | PG_G;
+ ((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT;
+ ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS | PG_G;
}
/* And connect up the PD to the PDP */
@@ -470,11 +466,12 @@
}
/* Now set up the direct map space using either 2MB or 1GB pages */
+ /* Preset PG_M and PG_A because demotion expects it */
if ((amd_feature & AMDID_PAGE1GB) == 0) {
for (i = 0; i < NPDEPG * ndmpdp; i++) {
((pd_entry_t *)DMPDphys)[i] = (vm_paddr_t)i << PDRSHIFT;
((pd_entry_t *)DMPDphys)[i] |= PG_RW | PG_V | PG_PS |
- PG_G;
+ PG_G | PG_M | PG_A;
}
/* And the direct map space's PDP */
for (i = 0; i < ndmpdp; i++) {
@@ -487,7 +484,7 @@
((pdp_entry_t *)DMPDPphys)[i] =
(vm_paddr_t)i << PDPSHIFT;
((pdp_entry_t *)DMPDPphys)[i] |= PG_RW | PG_V | PG_PS |
- PG_G;
+ PG_G | PG_M | PG_A;
}
}
@@ -543,7 +540,6 @@
kernel_pmap->pm_root = NULL;
kernel_pmap->pm_active = -1; /* don't allow deactivation */
TAILQ_INIT(&kernel_pmap->pm_pvchunk);
- nkpt = NKPT;
/*
* Reserve some special page table entries/VA space for temporary
@@ -649,15 +645,17 @@
* Initialize the vm page array entries for the kernel pmap's
* page table pages.
*/
- pd = pmap_pde(kernel_pmap, VM_MIN_KERNEL_ADDRESS);
- for (i = 0; i < nkpt; i++) {
+ pd = pmap_pde(kernel_pmap, KERNBASE);
+ for (i = 0; i < NKPT; i++) {
if ((pd[i] & (PG_PS | PG_V)) == (PG_PS | PG_V))
continue;
+ KASSERT((pd[i] & PG_V) != 0,
+ ("pmap_init: page table page is missing"));
mpte = PHYS_TO_VM_PAGE(pd[i] & PG_FRAME);
KASSERT(mpte >= vm_page_array &&
mpte < &vm_page_array[vm_page_array_size],
("pmap_init: page table page is out of range"));
- mpte->pindex = pmap_pde_pindex(VM_MIN_KERNEL_ADDRESS) + i;
+ mpte->pindex = pmap_pde_pindex(KERNBASE) + i;
mpte->phys_addr = pd[i] & PG_FRAME;
}
@@ -1043,17 +1041,25 @@
vm_paddr_t
pmap_kextract(vm_offset_t va)
{
- pd_entry_t *pde;
+ pd_entry_t pde;
vm_paddr_t pa;
if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS) {
pa = DMAP_TO_PHYS(va);
} else {
- pde = vtopde(va);
- if (*pde & PG_PS) {
- pa = (*pde & PG_PS_FRAME) | (va & PDRMASK);
+ pde = *vtopde(va);
+ if (pde & PG_PS) {
+ pa = (pde & PG_PS_FRAME) | (va & PDRMASK);
} else {
- pa = *vtopte(va);
+ /*
+ * Beware of a concurrent promotion that changes the
+ * PDE at this point! For example, vtopte() must not
+ * be used to access the PTE because it would use the
+ * new PDE. It is, however, safe to use the old PDE
+ * because the page table page is preserved by the
+ * promotion.
+ */
+ pa = *pmap_pde_to_pte(&pde, va);
pa = (pa & PG_FRAME) | (va & PAGE_MASK);
}
}
@@ -1703,41 +1709,50 @@
vm_paddr_t paddr;
vm_page_t nkpg;
pd_entry_t *pde, newpdir;
- pdp_entry_t newpdp;
+ pdp_entry_t *pdpe;
mtx_assert(&kernel_map->system_mtx, MA_OWNED);
- if (kernel_vm_end == 0) {
- kernel_vm_end = VM_MIN_KERNEL_ADDRESS;
- nkpt = 0;
- while ((*pmap_pde(kernel_pmap, kernel_vm_end) & PG_V) != 0) {
- kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1);
- nkpt++;
- if (kernel_vm_end - 1 >= kernel_map->max_offset) {
- kernel_vm_end = kernel_map->max_offset;
- break;
- }
- }
- }
- addr = roundup2(addr, PAGE_SIZE * NPTEPG);
+
+ /*
+ * Return if "addr" is within the range of kernel page table pages
+ * that were preallocated during pmap bootstrap. Moreover, leave
+ * "kernel_vm_end" and the kernel page table as they were.
+ *
+ * The correctness of this action is based on the following
+ * argument: vm_map_findspace() allocates contiguous ranges of the
+ * kernel virtual address space. It calls this function if a range
+ * ends after "kernel_vm_end". If the kernel is mapped between
+ * "kernel_vm_end" and "addr", then the range cannot begin at
+ * "kernel_vm_end". In fact, its beginning address cannot be less
+ * than the kernel. Thus, there is no immediate need to allocate
+ * any new kernel page table pages between "kernel_vm_end" and
+ * "KERNBASE".
+ */
+ if (KERNBASE < addr && addr <= KERNBASE + NKPT * NBPDR)
+ return;
+
+ addr = roundup2(addr, NBPDR);
if (addr - 1 >= kernel_map->max_offset)
addr = kernel_map->max_offset;
while (kernel_vm_end < addr) {
- pde = pmap_pde(kernel_pmap, kernel_vm_end);
- if (pde == NULL) {
+ pdpe = pmap_pdpe(kernel_pmap, kernel_vm_end);
+ if ((*pdpe & PG_V) == 0) {
/* We need a new PDP entry */
- nkpg = vm_page_alloc(NULL, nkpt,
- VM_ALLOC_NOOBJ | VM_ALLOC_SYSTEM | VM_ALLOC_WIRED);
+ nkpg = vm_page_alloc(NULL, kernel_vm_end >> PDPSHIFT,
+ VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ |
+ VM_ALLOC_WIRED | VM_ALLOC_ZERO);
if (nkpg == NULL)
panic("pmap_growkernel: no memory to grow kernel");
- pmap_zero_page(nkpg);
+ if ((nkpg->flags & PG_ZERO) == 0)
+ pmap_zero_page(nkpg);
paddr = VM_PAGE_TO_PHYS(nkpg);
- newpdp = (pdp_entry_t)
+ *pdpe = (pdp_entry_t)
(paddr | PG_V | PG_RW | PG_A | PG_M);
- *pmap_pdpe(kernel_pmap, kernel_vm_end) = newpdp;
continue; /* try again */
}
+ pde = pmap_pdpe_to_pde(pdpe, kernel_vm_end);
if ((*pde & PG_V) != 0) {
- kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1);
+ kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK;
if (kernel_vm_end - 1 >= kernel_map->max_offset) {
kernel_vm_end = kernel_map->max_offset;
break;
@@ -1746,18 +1761,17 @@
}
nkpg = vm_page_alloc(NULL, pmap_pde_pindex(kernel_vm_end),
- VM_ALLOC_NOOBJ | VM_ALLOC_SYSTEM | VM_ALLOC_WIRED);
+ VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED |
+ VM_ALLOC_ZERO);
if (nkpg == NULL)
panic("pmap_growkernel: no memory to grow kernel");
-
- nkpt++;
-
- pmap_zero_page(nkpg);
+ if ((nkpg->flags & PG_ZERO) == 0)
+ pmap_zero_page(nkpg);
paddr = VM_PAGE_TO_PHYS(nkpg);
newpdir = (pd_entry_t) (paddr | PG_V | PG_RW | PG_A | PG_M);
- *pmap_pde(kernel_pmap, kernel_vm_end) = newpdir;
+ pde_store(pde, newpdir);
- kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1);
+ kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK;
if (kernel_vm_end - 1 >= kernel_map->max_offset) {
kernel_vm_end = kernel_map->max_offset;
break;
@@ -2193,58 +2207,88 @@
}
/*
- * Tries to demote a 2MB page mapping.
+ * Fills a page table page with mappings to consecutive physical pages.
+ */
+static void
+pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte)
+{
+ pt_entry_t *pte;
+
+ for (pte = firstpte; pte < firstpte + NPTEPG; pte++) {
+ *pte = newpte;
+ newpte += PAGE_SIZE;
+ }
+}
+
+/*
+ * Tries to demote a 2MB page mapping. If demotion fails, the 2MB page
+ * mapping is invalidated.
*/
static boolean_t
pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va)
{
pd_entry_t newpde, oldpde;
- pt_entry_t *firstpte, newpte, *pte;
+ pt_entry_t *firstpte, newpte;
vm_paddr_t mptepa;
vm_page_t free, mpte;
PMAP_LOCK_ASSERT(pmap, MA_OWNED);
+ oldpde = *pde;
+ KASSERT((oldpde & (PG_PS | PG_V)) == (PG_PS | PG_V),
+ ("pmap_demote_pde: oldpde is missing PG_PS and/or PG_V"));
mpte = pmap_lookup_pt_page(pmap, va);
if (mpte != NULL)
pmap_remove_pt_page(pmap, mpte);
else {
- KASSERT((*pde & PG_W) == 0,
+ KASSERT((oldpde & PG_W) == 0,
("pmap_demote_pde: page table page for a wired mapping"
" is missing"));
- free = NULL;
- pmap_remove_pde(pmap, pde, trunc_2mpage(va), &free);
- pmap_invalidate_page(pmap, trunc_2mpage(va));
- pmap_free_zero_pages(free);
- CTR2(KTR_PMAP, "pmap_demote_pde: failure for va %#lx"
- " in pmap %p", va, pmap);
- return (FALSE);
+
+ /*
+ * Invalidate the 2MB page mapping and return "failure" if the
+ * mapping was never accessed or the allocation of the new
+ * page table page fails.
+ */
+ if ((oldpde & PG_A) == 0 || (mpte = vm_page_alloc(NULL,
+ pmap_pde_pindex(va), VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL |
+ VM_ALLOC_WIRED)) == NULL) {
+ free = NULL;
+ pmap_remove_pde(pmap, pde, trunc_2mpage(va), &free);
+ pmap_invalidate_page(pmap, trunc_2mpage(va));
+ pmap_free_zero_pages(free);
+ CTR2(KTR_PMAP, "pmap_demote_pde: failure for va %#lx"
+ " in pmap %p", va, pmap);
+ return (FALSE);
+ }
}
mptepa = VM_PAGE_TO_PHYS(mpte);
firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa);
- oldpde = *pde;
newpde = mptepa | PG_M | PG_A | (oldpde & PG_U) | PG_RW | PG_V;
- KASSERT((oldpde & (PG_A | PG_V)) == (PG_A | PG_V),
- ("pmap_demote_pde: oldpde is missing PG_A and/or PG_V"));
+ KASSERT((oldpde & PG_A) != 0,
+ ("pmap_demote_pde: oldpde is missing PG_A"));
KASSERT((oldpde & (PG_M | PG_RW)) != PG_RW,
("pmap_demote_pde: oldpde is missing PG_M"));
- KASSERT((oldpde & PG_PS) != 0,
- ("pmap_demote_pde: oldpde is missing PG_PS"));
newpte = oldpde & ~PG_PS;
if ((newpte & PG_PDE_PAT) != 0)
newpte ^= PG_PDE_PAT | PG_PTE_PAT;
/*
- * If the mapping has changed attributes, update the page table
- * entries.
+ * If the page table page is new, initialize it.
*/
+ if (mpte->wire_count == 1) {
+ mpte->wire_count = NPTEPG;
+ pmap_fill_ptp(firstpte, newpte);
+ }
KASSERT((*firstpte & PG_FRAME) == (newpte & PG_FRAME),
("pmap_demote_pde: firstpte and newpte map different physical"
" addresses"));
+
+ /*
+ * If the mapping has changed attributes, update the page table
+ * entries.
+ */
if ((*firstpte & PG_PTE_PROMOTE) != (newpte & PG_PTE_PROMOTE))
- for (pte = firstpte; pte < firstpte + NPTEPG; pte++) {
- *pte = newpte;
- newpte += PAGE_SIZE;
- }
+ pmap_fill_ptp(firstpte, newpte);
/*
* Demote the mapping. This pmap is locked. The old PDE has
==== //depot/projects/vimage/src/sys/amd64/conf/GENERIC#17 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.502 2008/06/20 19:28:33 delphij Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.504 2008/07/13 07:20:14 ed Exp $
cpu HAMMER
ident GENERIC
@@ -64,6 +64,7 @@
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
+options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
# Debugging for use in -current
options KDB # Enable kernel debugger support.
@@ -171,7 +172,6 @@
device cardbus # CardBus (32-bit) bus
# Serial (COM) ports
-device sio # 8250, 16[45]50 based serial ports
device uart # Generic UART driver
# Parallel port
==== //depot/projects/vimage/src/sys/amd64/conf/GENERIC.hints#3 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.18 2007/10/15 20:00:20 netchild Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.19 2008/07/13 07:20:14 ed Exp $
hint.fdc.0.at="isa"
hint.fdc.0.port="0x3F0"
hint.fdc.0.irq="6"
@@ -16,20 +16,20 @@
hint.vga.0.at="isa"
hint.sc.0.at="isa"
hint.sc.0.flags="0x100"
-hint.sio.0.at="isa"
-hint.sio.0.port="0x3F8"
-hint.sio.0.flags="0x10"
-hint.sio.0.irq="4"
-hint.sio.1.at="isa"
-hint.sio.1.port="0x2F8"
-hint.sio.1.irq="3"
-hint.sio.2.at="isa"
-hint.sio.2.disabled="1"
-hint.sio.2.port="0x3E8"
-hint.sio.2.irq="5"
-hint.sio.3.at="isa"
-hint.sio.3.disabled="1"
-hint.sio.3.port="0x2E8"
-hint.sio.3.irq="9"
+hint.uart.0.at="isa"
+hint.uart.0.port="0x3F8"
+hint.uart.0.flags="0x10"
+hint.uart.0.irq="4"
+hint.uart.1.at="isa"
+hint.uart.1.port="0x2F8"
+hint.uart.1.irq="3"
+hint.uart.2.at="isa"
+hint.uart.2.disabled="1"
+hint.uart.2.port="0x3E8"
+hint.uart.2.irq="5"
+hint.uart.3.at="isa"
+hint.uart.3.disabled="1"
+hint.uart.3.port="0x2E8"
+hint.uart.3.irq="9"
hint.ppc.0.at="isa"
hint.ppc.0.irq="7"
==== //depot/projects/vimage/src/sys/amd64/include/pmap.h#6 (text+ko) ====
@@ -39,7 +39,7 @@
*
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.142 2008/06/29 19:13:27 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.146 2008/07/08 22:59:17 alc Exp $
*/
#ifndef _MACHINE_PMAP_H_
@@ -111,11 +111,11 @@
/* Initial number of kernel page tables. */
#ifndef NKPT
-#define NKPT 2288
+#define NKPT 32
#endif
#define NKPML4E 1 /* number of kernel PML4 slots */
-#define NKPDPE 5 /* number of kernel PDP slots */
+#define NKPDPE howmany(NKPT, NPDEPG)/* number of kernel PDP slots */
#define NUPML4E (NPML4EPG/2) /* number of userland PML4 pages */
#define NUPDPE (NUPML4E*NPDPEPG)/* number of userland PDP pages */
@@ -131,7 +131,7 @@
#define KPML4I (NPML4EPG-1) /* Top 512GB for KVM */
#define DMPML4I (KPML4I-1) /* Next 512GB down for direct map */
-#define KPDPI (NPDPEPG-6) /* kernel map starts at -6GB */
+#define KPDPI (NPDPEPG-2) /* kernbase at -2GB */
/*
* XXX doesn't really belong here I guess...
==== //depot/projects/vimage/src/sys/amd64/include/vmparam.h#8 (text+ko) ====
@@ -38,7 +38,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.52 2008/06/29 19:13:27 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.56 2008/07/08 22:59:17 alc Exp $
*/
@@ -148,17 +148,27 @@
/*
* Virtual addresses of things. Derived from the page directory and
* page table indexes from pmap.h for precision.
- * Because of the page that is both a PD and PT, it looks a little
- * messy at times, but hey, we'll do anything to save a page :-)
+ *
+ * 0x0000000000000000 - 0x00007fffffffffff user map
+ * 0x0000800000000000 - 0xffff7fffffffffff does not exist (hole)
+ * 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot)
+ * 0xffff804020101000 - 0xfffffeffffffffff unused
+ * 0xffffff0000000000 - 0xffffff7fffffffff 512GB direct map mappings
+ * 0xffffff8000000000 - 0xfffffffe3fffffff unused (505GB)
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list