Subject: CVS commit: [vmlocking] src/sys
To: None <source-changes@NetBSD.org>
From: Andrew Doran <ad@netbsd.org>
List: source-changes
Date: 06/17/2007 21:32:23
Module Name:	src
Committed By:	ad
Date:		Sun Jun 17 21:32:23 UTC 2007

Modified Files:
	src/sys/arch/i386/i386 [vmlocking]: cpu.c genassym.cf locore.S
	    machdep.c spl.S vector.S
	src/sys/arch/i386/include [vmlocking]: cpu.h
	src/sys/arch/x86/conf [vmlocking]: files.x86
	src/sys/arch/x86/include [vmlocking]: intr.h intrdefs.h
	src/sys/arch/x86/x86 [vmlocking]: intr.c
	src/sys/coda [vmlocking]: coda_namecache.c coda_subr.c coda_vfsops.c
	src/sys/compat/common [vmlocking]: vfs_syscalls_43.c
	src/sys/compat/svr4 [vmlocking]: svr4_fcntl.c
	src/sys/conf [vmlocking]: files
	src/sys/dev [vmlocking]: audio.c ccd.c fss.c midi.c sequencer.c vnd.c
	src/sys/dev/ata [vmlocking]: ld_ataraid.c wd.c
	src/sys/dev/bluetooth [vmlocking]: btsco.c
	src/sys/dev/dkwedge [vmlocking]: dk.c
	src/sys/dev/dmover [vmlocking]: dmover_process.c
	src/sys/dev/ic [vmlocking]: cd18xx.c clmpcc.c com.c smc90cx6.c
	src/sys/dev/marvell [vmlocking]: gtmpsc.c
	src/sys/dev/sbus [vmlocking]: magma.c spif.c stp4020.c
	src/sys/dev/scsipi [vmlocking]: scsipi_ioctl.c
	src/sys/dev/tc [vmlocking]: zs_ioasic.c
	src/sys/dev/usb [vmlocking]: umidi.c usb.c
	src/sys/fs/adosfs [vmlocking]: adlookup.c advfsops.c
	src/sys/fs/cd9660 [vmlocking]: cd9660_vfsops.c
	src/sys/fs/filecorefs [vmlocking]: filecore_vfsops.c
	src/sys/fs/hfs [vmlocking]: hfs_subr.c hfs_vfsops.c
	src/sys/fs/msdosfs [vmlocking]: msdosfs_denode.c msdosfs_lookup.c
	    msdosfs_vfsops.c
	src/sys/fs/ntfs [vmlocking]: ntfs_vfsops.c
	src/sys/fs/ptyfs [vmlocking]: ptyfs_subr.c
	src/sys/fs/puffs [vmlocking]: puffs_subr.c puffs_vfsops.c puffs_vnops.c
	src/sys/fs/smbfs [vmlocking]: smbfs_node.c smbfs_vfsops.c smbfs_vnops.c
	src/sys/fs/sysvbfs [vmlocking]: sysvbfs_vfsops.c
	src/sys/fs/tmpfs [vmlocking]: tmpfs_subr.c
	src/sys/fs/udf [vmlocking]: udf_subr.c udf_vfsops.c
	src/sys/fs/union [vmlocking]: union_subr.c union_vnops.c
	src/sys/kern [vmlocking]: exec_subr.c init_main.c kern_clock.c
	    kern_condvar.c kern_cpu.c kern_idle.c kern_kthread.c kern_lock.c
	    kern_lwp.c kern_proc.c kern_sig.c kern_sleepq.c kern_synch.c
	    kern_turnstile.c sched_4bsd.c subr_lockdebug.c tty_ptm.c vfs_bio.c
	    vfs_getcwd.c vfs_lookup.c vfs_subr.c vfs_syscalls.c vfs_vnops.c
	    vnode_if.c vnode_if.sh
	src/sys/miscfs/deadfs [vmlocking]: dead_vnops.c
	src/sys/miscfs/fdesc [vmlocking]: fdesc_vfsops.c
	src/sys/miscfs/genfs [vmlocking]: genfs_vnops.c layer_subr.c
	src/sys/miscfs/kernfs [vmlocking]: kernfs_subr.c
	src/sys/miscfs/nullfs [vmlocking]: null_vfsops.c
	src/sys/miscfs/overlay [vmlocking]: overlay_vfsops.c
	src/sys/miscfs/portal [vmlocking]: portal_vfsops.c portal_vnops.c
	src/sys/miscfs/procfs [vmlocking]: procfs_subr.c procfs_vnops.c
	src/sys/miscfs/specfs [vmlocking]: spec_vnops.c
	src/sys/miscfs/syncfs [vmlocking]: sync_subr.c
	src/sys/miscfs/umapfs [vmlocking]: umap_vfsops.c
	src/sys/net [vmlocking]: if_etherip.c if_ethersubr.c if_gif.c if_ppp.c
	    if_pppoe.c if_sl.c if_strip.c netisr.h
	src/sys/netbt [vmlocking]: hci_unit.c
	src/sys/nfs [vmlocking]: nfs_bio.c nfs_serv.c nfs_vfsops.c
	src/sys/opencrypto [vmlocking]: crypto.c
	src/sys/sys [vmlocking]: buf.h cpu.h cpu_data.h lwp.h param.h vnode.h
	    vnode_if.h
	src/sys/ufs/ext2fs [vmlocking]: ext2fs_vfsops.c ext2fs_vnops.c
	src/sys/ufs/ffs [vmlocking]: ffs_alloc.c ffs_snapshot.c ffs_softdep.c
	    ffs_vfsops.c
	src/sys/ufs/lfs [vmlocking]: lfs.h lfs_alloc.c lfs_inode.c
	    lfs_segment.c lfs_subr.c lfs_syscalls.c lfs_vnops.c
	src/sys/ufs/ufs [vmlocking]: ufs_inode.c ufs_quota.c ufs_readwrite.c
	    ufs_vnops.c
	src/sys/uvm [vmlocking]: uvm_mmap.c uvm_pager.c uvm_swap.c uvm_vnode.c
Added Files:
	src/sys/kern [vmlocking]: kern_softint.c
	src/sys/sys [vmlocking]: intr.h
Removed Files:
	src/sys/arch/x86/x86 [vmlocking]: softintr.c

Log Message:
- Increase the number of thread priorities from 128 to 256. How the space
  is set up is to be revisited.
- Implement soft interrupts as kernel threads. A generic implementation
  is provided, with hooks for fast-path MD code that can run the interrupt
  threads over the top of other threads executing in the kernel.
- Split vnode::v_flag into three fields, depending on how the flag is
  locked (by the interlock, by the vnode lock, by the file system).
- Miscellaneous locking fixes and improvements.


To generate a diff of this commit:
cvs rdiff -r1.35.2.3 -r1.35.2.4 src/sys/arch/i386/i386/cpu.c
cvs rdiff -r1.48.4.1 -r1.48.4.2 src/sys/arch/i386/i386/genassym.cf
cvs rdiff -r1.47.4.1 -r1.47.4.2 src/sys/arch/i386/i386/locore.S
cvs rdiff -r1.601.2.4 -r1.601.2.5 src/sys/arch/i386/i386/machdep.c
cvs rdiff -r1.15.6.1 -r1.15.6.2 src/sys/arch/i386/i386/spl.S
cvs rdiff -r1.24 -r1.24.6.1 src/sys/arch/i386/i386/vector.S
cvs rdiff -r1.135.2.7 -r1.135.2.8 src/sys/arch/i386/include/cpu.h
cvs rdiff -r1.24.2.3 -r1.24.2.4 src/sys/arch/x86/conf/files.x86
cvs rdiff -r1.25.6.1 -r1.25.6.2 src/sys/arch/x86/include/intr.h
cvs rdiff -r1.5.32.1 -r1.5.32.2 src/sys/arch/x86/include/intrdefs.h
cvs rdiff -r1.28.4.1 -r1.28.4.2 src/sys/arch/x86/x86/intr.c
cvs rdiff -r1.1.60.1 -r0 src/sys/arch/x86/x86/softintr.c
cvs rdiff -r1.20 -r1.20.8.1 src/sys/coda/coda_namecache.c
cvs rdiff -r1.23 -r1.23.2.1 src/sys/coda/coda_subr.c
cvs rdiff -r1.54 -r1.54.6.1 src/sys/coda/coda_vfsops.c
cvs rdiff -r1.37.2.2 -r1.37.2.3 src/sys/compat/common/vfs_syscalls_43.c
cvs rdiff -r1.55.2.3 -r1.55.2.4 src/sys/compat/svr4/svr4_fcntl.c
cvs rdiff -r1.834.2.3 -r1.834.2.4 src/sys/conf/files
cvs rdiff -r1.221 -r1.221.2.1 src/sys/dev/audio.c
cvs rdiff -r1.118.2.3 -r1.118.2.4 src/sys/dev/ccd.c
cvs rdiff -r1.32.2.6 -r1.32.2.7 src/sys/dev/fss.c
cvs rdiff -r1.53 -r1.53.2.1 src/sys/dev/midi.c
cvs rdiff -r1.40.2.1 -r1.40.2.2 src/sys/dev/sequencer.c
cvs rdiff -r1.165.2.5 -r1.165.2.6 src/sys/dev/vnd.c
cvs rdiff -r1.19.2.2 -r1.19.2.3 src/sys/dev/ata/ld_ataraid.c
cvs rdiff -r1.337.2.3 -r1.337.2.4 src/sys/dev/ata/wd.c
cvs rdiff -r1.12.2.2 -r1.12.2.3 src/sys/dev/bluetooth/btsco.c
cvs rdiff -r1.22.2.2 -r1.22.2.3 src/sys/dev/dkwedge/dk.c
cvs rdiff -r1.2 -r1.2.60.1 src/sys/dev/dmover/dmover_process.c
cvs rdiff -r1.19 -r1.19.2.1 src/sys/dev/ic/cd18xx.c
cvs rdiff -r1.32 -r1.32.2.1 src/sys/dev/ic/clmpcc.c
cvs rdiff -r1.259 -r1.259.2.1 src/sys/dev/ic/com.c
cvs rdiff -r1.47 -r1.47.2.1 src/sys/dev/ic/smc90cx6.c
cvs rdiff -r1.23 -r1.23.2.1 src/sys/dev/marvell/gtmpsc.c
cvs rdiff -r1.40 -r1.40.2.1 src/sys/dev/sbus/magma.c
cvs rdiff -r1.10 -r1.10.2.1 src/sys/dev/sbus/spif.c
cvs rdiff -r1.49.6.1 -r1.49.6.2 src/sys/dev/sbus/stp4020.c
cvs rdiff -r1.62.2.2 -r1.62.2.3 src/sys/dev/scsipi/scsipi_ioctl.c
cvs rdiff -r1.32 -r1.32.18.1 src/sys/dev/tc/zs_ioasic.c
cvs rdiff -r1.29.4.1 -r1.29.4.2 src/sys/dev/usb/umidi.c
cvs rdiff -r1.96.2.2 -r1.96.2.3 src/sys/dev/usb/usb.c
cvs rdiff -r1.9 -r1.9.6.1 src/sys/fs/adosfs/adlookup.c
cvs rdiff -r1.34.2.1 -r1.34.2.2 src/sys/fs/adosfs/advfsops.c
cvs rdiff -r1.40.2.2 -r1.40.2.3 src/sys/fs/cd9660/cd9660_vfsops.c
cvs rdiff -r1.32.2.1 -r1.32.2.2 src/sys/fs/filecorefs/filecore_vfsops.c
cvs rdiff -r1.2.2.2 -r1.2.2.3 src/sys/fs/hfs/hfs_subr.c
cvs rdiff -r1.2.2.1 -r1.2.2.2 src/sys/fs/hfs/hfs_vfsops.c
cvs rdiff -r1.19.2.3 -r1.19.2.4 src/sys/fs/msdosfs/msdosfs_denode.c
cvs rdiff -r1.12.2.1 -r1.12.2.2 src/sys/fs/msdosfs/msdosfs_lookup.c
cvs rdiff -r1.44.4.2 -r1.44.4.3 src/sys/fs/msdosfs/msdosfs_vfsops.c
cvs rdiff -r1.49.2.2 -r1.49.2.3 src/sys/fs/ntfs/ntfs_vfsops.c
cvs rdiff -r1.7.18.2 -r1.7.18.3 src/sys/fs/ptyfs/ptyfs_subr.c
cvs rdiff -r1.22.2.6 -r1.22.2.7 src/sys/fs/puffs/puffs_subr.c
cvs rdiff -r1.28.6.6 -r1.28.6.7 src/sys/fs/puffs/puffs_vfsops.c
cvs rdiff -r1.52.4.5 -r1.52.4.6 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -r1.30.8.1 -r1.30.8.2 src/sys/fs/smbfs/smbfs_node.c
cvs rdiff -r1.62.6.3 -r1.62.6.4 src/sys/fs/smbfs/smbfs_vfsops.c
cvs rdiff -r1.59 -r1.59.2.1 src/sys/fs/smbfs/smbfs_vnops.c
cvs rdiff -r1.8.4.1 -r1.8.4.2 src/sys/fs/sysvbfs/sysvbfs_vfsops.c
cvs rdiff -r1.34.4.1 -r1.34.4.2 src/sys/fs/tmpfs/tmpfs_subr.c
cvs rdiff -r1.32.4.3 -r1.32.4.4 src/sys/fs/udf/udf_subr.c
cvs rdiff -r1.22.6.4 -r1.22.6.5 src/sys/fs/udf/udf_vfsops.c
cvs rdiff -r1.24.6.1 -r1.24.6.2 src/sys/fs/union/union_subr.c
cvs rdiff -r1.19.6.2 -r1.19.6.3 src/sys/fs/union/union_vnops.c
cvs rdiff -r1.52.2.1 -r1.52.2.2 src/sys/kern/exec_subr.c
cvs rdiff -r1.299.2.10 -r1.299.2.11 src/sys/kern/init_main.c
cvs rdiff -r1.106.6.2 -r1.106.6.3 src/sys/kern/kern_clock.c
cvs rdiff -r1.5.2.3 -r1.5.2.4 src/sys/kern/kern_condvar.c
cvs rdiff -r1.2.2.2 -r1.2.2.3 src/sys/kern/kern_cpu.c
cvs rdiff -r1.1.6.1 -r1.1.6.2 src/sys/kern/kern_idle.c \
    src/sys/kern/sched_4bsd.c
cvs rdiff -r1.16.6.5 -r1.16.6.6 src/sys/kern/kern_kthread.c
cvs rdiff -r1.110.2.6 -r1.110.2.7 src/sys/kern/kern_lock.c
cvs rdiff -r1.61.2.11 -r1.61.2.12 src/sys/kern/kern_lwp.c
cvs rdiff -r1.107.2.7 -r1.107.2.8 src/sys/kern/kern_proc.c
cvs rdiff -r1.251.2.3 -r1.251.2.4 src/sys/kern/kern_sig.c
cvs rdiff -r1.7.2.5 -r1.7.2.6 src/sys/kern/kern_sleepq.c
cvs rdiff -r0 -r1.1.2.1 src/sys/kern/kern_softint.c
cvs rdiff -r1.186.2.7 -r1.186.2.8 src/sys/kern/kern_synch.c
cvs rdiff -r1.6.2.4 -r1.6.2.5 src/sys/kern/kern_turnstile.c
cvs rdiff -r1.5.2.1 -r1.5.2.2 src/sys/kern/subr_lockdebug.c
cvs rdiff -r1.17.2.2 -r1.17.2.3 src/sys/kern/tty_ptm.c
cvs rdiff -r1.170.2.8 -r1.170.2.9 src/sys/kern/vfs_bio.c
cvs rdiff -r1.35 -r1.35.6.1 src/sys/kern/vfs_getcwd.c
cvs rdiff -r1.84.4.2 -r1.84.4.3 src/sys/kern/vfs_lookup.c
cvs rdiff -r1.283.2.8 -r1.283.2.9 src/sys/kern/vfs_subr.c
cvs rdiff -r1.306.2.7 -r1.306.2.8 src/sys/kern/vfs_syscalls.c
cvs rdiff -r1.135.2.5 -r1.135.2.6 src/sys/kern/vfs_vnops.c
cvs rdiff -r1.67.8.1 -r1.67.8.2 src/sys/kern/vnode_if.c
cvs rdiff -r1.43.8.1 -r1.43.8.2 src/sys/kern/vnode_if.sh
cvs rdiff -r1.43.6.4 -r1.43.6.5 src/sys/miscfs/deadfs/dead_vnops.c
cvs rdiff -r1.64 -r1.64.6.1 src/sys/miscfs/fdesc/fdesc_vfsops.c
cvs rdiff -r1.150.2.7 -r1.150.2.8 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -r1.21.6.1 -r1.21.6.2 src/sys/miscfs/genfs/layer_subr.c
cvs rdiff -r1.11.2.2 -r1.11.2.3 src/sys/miscfs/kernfs/kernfs_subr.c
cvs rdiff -r1.62.6.2 -r1.62.6.3 src/sys/miscfs/nullfs/null_vfsops.c
cvs rdiff -r1.37.6.2 -r1.37.6.3 src/sys/miscfs/overlay/overlay_vfsops.c
cvs rdiff -r1.60.6.1 -r1.60.6.2 src/sys/miscfs/portal/portal_vfsops.c
cvs rdiff -r1.70 -r1.70.6.1 src/sys/miscfs/portal/portal_vnops.c
cvs rdiff -r1.79.2.2 -r1.79.2.3 src/sys/miscfs/procfs/procfs_subr.c
cvs rdiff -r1.154.2.3 -r1.154.2.4 src/sys/miscfs/procfs/procfs_vnops.c
cvs rdiff -r1.98.2.5 -r1.98.2.6 src/sys/miscfs/specfs/spec_vnops.c
cvs rdiff -r1.28.6.1 -r1.28.6.2 src/sys/miscfs/syncfs/sync_subr.c
cvs rdiff -r1.63.6.2 -r1.63.6.3 src/sys/miscfs/umapfs/umap_vfsops.c
cvs rdiff -r1.5.2.2 -r1.5.2.3 src/sys/net/if_etherip.c
cvs rdiff -r1.148.2.1 -r1.148.2.2 src/sys/net/if_ethersubr.c
cvs rdiff -r1.67.2.2 -r1.67.2.3 src/sys/net/if_gif.c
cvs rdiff -r1.114 -r1.114.2.1 src/sys/net/if_ppp.c
cvs rdiff -r1.77.2.1 -r1.77.2.2 src/sys/net/if_pppoe.c
cvs rdiff -r1.105 -r1.105.2.1 src/sys/net/if_sl.c
cvs rdiff -r1.74 -r1.74.2.1 src/sys/net/if_strip.c
cvs rdiff -r1.35 -r1.35.12.1 src/sys/net/netisr.h
cvs rdiff -r1.3.10.1 -r1.3.10.2 src/sys/netbt/hci_unit.c
cvs rdiff -r1.151.2.6 -r1.151.2.7 src/sys/nfs/nfs_bio.c
cvs rdiff -r1.127.2.1 -r1.127.2.2 src/sys/nfs/nfs_serv.c
cvs rdiff -r1.174.2.2 -r1.174.2.3 src/sys/nfs/nfs_vfsops.c
cvs rdiff -r1.18.6.4 -r1.18.6.5 src/sys/opencrypto/crypto.c
cvs rdiff -r1.95.2.2 -r1.95.2.3 src/sys/sys/buf.h
cvs rdiff -r1.7.56.1 -r1.7.56.2 src/sys/sys/cpu.h
cvs rdiff -r1.7.6.1 -r1.7.6.2 src/sys/sys/cpu_data.h
cvs rdiff -r0 -r1.1.2.1 src/sys/sys/intr.h
cvs rdiff -r1.56.2.8 -r1.56.2.9 src/sys/sys/lwp.h
cvs rdiff -r1.255.4.4 -r1.255.4.5 src/sys/sys/param.h
cvs rdiff -r1.167.2.5 -r1.167.2.6 src/sys/sys/vnode.h
cvs rdiff -r1.63 -r1.63.8.1 src/sys/sys/vnode_if.h
cvs rdiff -r1.109.2.4 -r1.109.2.5 src/sys/ufs/ext2fs/ext2fs_vfsops.c
cvs rdiff -r1.74 -r1.74.2.1 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -r1.98.2.4 -r1.98.2.5 src/sys/ufs/ffs/ffs_alloc.c
cvs rdiff -r1.43.2.4 -r1.43.2.5 src/sys/ufs/ffs/ffs_snapshot.c
cvs rdiff -r1.86.2.9 -r1.86.2.10 src/sys/ufs/ffs/ffs_softdep.c
cvs rdiff -r1.196.6.9 -r1.196.6.10 src/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -r1.118.6.2 -r1.118.6.3 src/sys/ufs/lfs/lfs.h
cvs rdiff -r1.100.6.2 -r1.100.6.3 src/sys/ufs/lfs/lfs_alloc.c
cvs rdiff -r1.107.2.3 -r1.107.2.4 src/sys/ufs/lfs/lfs_inode.c
cvs rdiff -r1.198.2.4 -r1.198.2.5 src/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.67.4.4 -r1.67.4.5 src/sys/ufs/lfs/lfs_subr.c
cvs rdiff -r1.122.2.2 -r1.122.2.3 src/sys/ufs/lfs/lfs_syscalls.c
cvs rdiff -r1.201.2.6 -r1.201.2.7 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -r1.64.6.3 -r1.64.6.4 src/sys/ufs/ufs/ufs_inode.c
cvs rdiff -r1.44.2.2 -r1.44.2.3 src/sys/ufs/ufs/ufs_quota.c
cvs rdiff -r1.76.4.4 -r1.76.4.5 src/sys/ufs/ufs/ufs_readwrite.c
cvs rdiff -r1.152.2.3 -r1.152.2.4 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -r1.108.2.4 -r1.108.2.5 src/sys/uvm/uvm_mmap.c
cvs rdiff -r1.81.4.4 -r1.81.4.5 src/sys/uvm/uvm_pager.c
cvs rdiff -r1.122.2.7 -r1.122.2.8 src/sys/uvm/uvm_swap.c
cvs rdiff -r1.81.2.5 -r1.81.2.6 src/sys/uvm/uvm_vnode.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.