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