git: kernel - Move mplock to machine-independent C
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Dec 19 19:23:25 PST 2009
commit 684a93c4b15cf9f678dcf209702dadcd4f670406
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Dec 19 18:57:32 2009 -0800
kernel - Move mplock to machine-independent C
* Remove the per-platform mplock code and move it all into
machine-independent code: sys/mplock2.h and kern/kern_mplock.c.
* Inline the critical path.
* When a conflict occurs kern_mplock.c will KTR log the file and line
number of both the holder and conflicting acquirer. Set
debug.ktr.giant_enable=-1 to enable conflict logging.
Summary of changes:
sys/bus/cam/cam_sim.c | 2 +
sys/bus/cam/cam_xpt.c | 2 +
sys/bus/cam/scsi/scsi_cd.c | 4 +-
sys/bus/cam/scsi/scsi_da.c | 4 +
sys/conf/files | 1 +
sys/dev/disk/ahci/ahci_dragonfly.h | 1 +
sys/dev/disk/nata/ata-all.c | 4 +-
sys/dev/disk/nata/ata-chipset.c | 4 +-
sys/dev/disk/nata/atapi-cam.c | 4 +-
sys/dev/disk/sili/sili_dragonfly.h | 1 +
sys/dev/raid/aac/aac.c | 2 +
sys/dev/raid/aac/aac_cam.c | 2 +
sys/emulation/43bsd/43bsd_file.c | 2 +
sys/emulation/43bsd/43bsd_hostinfo.c | 3 +
sys/emulation/43bsd/43bsd_signal.c | 2 +
sys/emulation/43bsd/43bsd_socket.c | 2 +
sys/emulation/43bsd/43bsd_stats.c | 2 +
sys/emulation/43bsd/43bsd_vm.c | 2 +
sys/emulation/dragonfly12/dfbsd12_getdirentries.c | 2 +
sys/emulation/dragonfly12/dfbsd12_stat.c | 2 +
sys/emulation/linux/i386/linux_machdep.c | 4 +-
sys/emulation/linux/i386/linux_ptrace.c | 2 +
sys/emulation/linux/linux_file.c | 1 +
sys/emulation/linux/linux_getcwd.c | 2 +
sys/emulation/linux/linux_ioctl.c | 2 +
sys/emulation/linux/linux_misc.c | 4 +-
sys/emulation/linux/linux_signal.c | 3 +
sys/emulation/linux/linux_socket.c | 2 +
sys/emulation/linux/linux_stats.c | 4 +-
sys/emulation/linux/linux_sysctl.c | 2 +
sys/emulation/linux/linux_uid16.c | 2 +
sys/kern/imgact_resident.c | 1 +
sys/kern/init_main.c | 2 +
sys/kern/kern_acct.c | 2 +
sys/kern/kern_acl.c | 2 +
sys/kern/kern_checkpoint.c | 5 +-
sys/kern/kern_clock.c | 2 +
sys/kern/kern_descrip.c | 1 +
sys/kern/kern_event.c | 4 +-
sys/kern/kern_exec.c | 1 +
sys/kern/kern_exit.c | 1 +
sys/kern/kern_fork.c | 1 +
sys/kern/kern_intr.c | 4 +-
sys/kern/kern_jail.c | 2 +
sys/kern/kern_ktrace.c | 3 +
sys/kern/kern_linker.c | 2 +
sys/kern/kern_module.c | 2 +
sys/kern/kern_mplock.c | 273 ++++++++++++++++++++
sys/kern/kern_ntptime.c | 2 +
sys/kern/kern_p1003_1b.c | 2 +
sys/kern/kern_proc.c | 1 +
sys/kern/kern_prot.c | 1 +
sys/kern/kern_resource.c | 1 +
sys/kern/kern_shutdown.c | 1 +
sys/kern/kern_sig.c | 4 +-
sys/kern/kern_slaballoc.c | 1 +
sys/kern/kern_synch.c | 5 +-
sys/kern/kern_sysctl.c | 3 +
sys/kern/kern_syslink.c | 1 +
sys/kern/kern_time.c | 2 +
sys/kern/kern_timeout.c | 2 +
sys/kern/kern_umtx.c | 1 +
sys/kern/kern_upcall.c | 2 +
sys/kern/kern_usched.c | 3 +
sys/kern/kern_uuid.c | 2 +
sys/kern/kern_varsym.c | 2 +
sys/kern/kern_xxx.c | 2 +
sys/kern/lwkt_caps.c | 3 +
sys/kern/lwkt_thread.c | 139 ++---------
sys/kern/subr_bus.c | 1 +
sys/kern/subr_prof.c | 2 +
sys/kern/sys_generic.c | 2 +
sys/kern/sys_pipe.c | 1 +
sys/kern/sys_process.c | 2 +
sys/kern/sys_socket.c | 2 +
sys/kern/sysv_msg.c | 2 +
sys/kern/sysv_sem.c | 2 +
sys/kern/sysv_shm.c | 2 +
sys/kern/uipc_syscalls.c | 1 +
sys/kern/usched_bsd4.c | 1 +
sys/kern/usched_dummy.c | 1 +
sys/kern/vfs_aio.c | 2 +
sys/kern/vfs_bio.c | 1 +
sys/kern/vfs_cache.c | 1 +
sys/kern/vfs_syscalls.c | 1 +
sys/kern/vfs_vnops.c | 1 +
sys/net/bpf.c | 1 +
sys/net/if_ethersubr.c | 2 +
sys/net/if_loop.c | 2 +
sys/net/ipfw/ip_fw2.c | 6 +-
sys/net/netisr.c | 1 +
sys/net/pfil.c | 1 +
sys/net/tap/if_tap.c | 4 +-
sys/net/tun/if_tun.c | 2 +
sys/netinet/if_ether.c | 1 +
sys/netinet/ip_divert.c | 4 +-
sys/netinet/ip_input.c | 2 +
sys/netinet/ip_output.c | 4 +-
sys/netinet/tcp_subr.c | 3 +-
sys/netproto/ncp/ncp_mod.c | 2 +
sys/opencrypto/cryptodev.c | 2 +
sys/platform/pc32/conf/files | 1 -
sys/platform/pc32/i386/busdma_machdep.c | 4 +-
sys/platform/pc32/i386/genassym.c | 3 -
sys/platform/pc32/i386/machdep.c | 1 +
sys/platform/pc32/i386/mp_machdep.c | 2 +
sys/platform/pc32/i386/mplock.s | 282 --------------------
sys/platform/pc32/i386/sys_machdep.c | 2 +
sys/platform/pc32/i386/trap.c | 2 +
sys/platform/pc32/i386/vm86.c | 2 +
sys/platform/pc32/i386/vm_machdep.c | 2 +
sys/platform/pc32/include/lock.h | 49 ----
sys/platform/pc32/isa/npx.c | 2 +
sys/platform/pc64/conf/files | 1 -
sys/platform/pc64/include/lock.h | 49 ----
sys/platform/pc64/isa/npx.c | 2 +
sys/platform/pc64/x86_64/busdma_machdep.c | 4 +-
sys/platform/pc64/x86_64/machdep.c | 1 +
sys/platform/pc64/x86_64/mp_machdep.c | 2 +
sys/platform/pc64/x86_64/mplock.s | 285 ---------------------
sys/platform/pc64/x86_64/npx.c | 2 +
sys/platform/pc64/x86_64/trap.c | 2 +
sys/platform/pc64/x86_64/vm_machdep.c | 1 +
sys/platform/vkernel/conf/files | 1 -
sys/platform/vkernel/i386/cpu_regs.c | 1 +
sys/platform/vkernel/i386/genassym.c | 3 -
sys/platform/vkernel/i386/mp.c | 2 +
sys/platform/vkernel/i386/mplock.s | 281 --------------------
sys/platform/vkernel/i386/npx.c | 2 +
sys/platform/vkernel/i386/trap.c | 2 +
sys/platform/vkernel/i386/vm_machdep.c | 2 +
sys/platform/vkernel/include/lock.h | 49 ----
sys/platform/vkernel/platform/busdma_machdep.c | 4 +-
sys/platform/vkernel/platform/copyio.c | 2 +
sys/sys/mplock2.h | 214 ++++++++++++++++
sys/sys/systm.h | 1 -
sys/sys/thread.h | 2 -
sys/vfs/devfs/devfs_vnops.c | 4 +-
sys/vfs/hammer/hammer_vnops.c | 3 +
sys/vfs/nfs/nfs_syscalls.c | 1 +
sys/vm/vm_mmap.c | 1 +
sys/vm/vm_swap.c | 5 +-
sys/vm/vm_unix.c | 2 +
sys/vm/vm_vmspace.c | 1 +
144 files changed, 758 insertions(+), 1152 deletions(-)
create mode 100644 sys/kern/kern_mplock.c
delete mode 100644 sys/platform/pc32/i386/mplock.s
delete mode 100644 sys/platform/pc64/x86_64/mplock.s
delete mode 100644 sys/platform/vkernel/i386/mplock.s
create mode 100644 sys/sys/mplock2.h
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/684a93c4b15cf9f678dcf209702dadcd4f670406
--
DragonFly BSD source repository
More information about the Commits
mailing list