mirror_zfs/module/spl
Brian Behlendorf 82387586af Optimize lowest outstanding taskqid calculation in taskq_lowest_id()
In the initial version of taskq_lowest_id() the entire pending and
work list was locked under the tq->tq_lock to determine the lowest
outstanding taskqid.  At the time this done because I was rushed
and wanted to make sure it was right... fast was secondary.  Well now
fast is important too so I carefully thought through the pending
and work list management and convinced myself it is safe and correct
to simply check the first entry.  I added a large comment to the source
to explain this.  But basically as long as we are careful to ensure the
pending and work list stay sorted this is safe and fast.

The motivation for this chance was that I was observing as much as
10% of the total CPU time go to waiting on the tq->tq_lock when the
pending list was long.  This resolves that problems and frees up
that CPU time for something useful.
2010-01-04 15:52:26 -08:00
..
Makefile.in Add basic credential support and splat tests. 2009-07-27 17:18:59 -07:00
spl-atomic.c Use Linux atomic primitives by default. 2009-10-30 10:55:25 -07:00
spl-condvar.c Rename modules to module and update references 2009-01-15 10:44:54 -08:00
spl-cred.c Remove get/put_task_struct as they are not available for SLES11 2009-07-28 15:04:21 -07:00
spl-debug.c Rebase cmn_err on vcmn_err and don't warn about missing \n 2009-10-27 16:13:35 -07:00
spl-err.c I should not have removed these, they are important. 2009-10-27 16:17:06 -07:00
spl-generic.c Correctly handle division on 32-bit RHEL5 systems by returning dividend. 2009-12-01 15:53:28 -08:00
spl-kmem.c Strip __GFP_ZERO from kmalloc it is not available for older kernels. 2009-12-23 12:57:10 -08:00
spl-kobj.c Rename modules to module and update references 2009-01-15 10:44:54 -08:00
spl-kstat.c Autoconf --enable-debug-* cleanup 2009-10-30 13:58:51 -07:00
spl-module.c Positive Solaris ioctl return codes need to be negated for use by libc 2009-07-23 16:14:52 -07:00
spl-mutex.c Reimplement mutexs for Linux lock profiling/analysis 2009-09-25 14:47:01 -07:00
spl-proc.c Add skc_flags and full header to /proc/spl/kmem/slab. 2009-12-11 11:20:08 -08:00
spl-rwlock.c Update rwlocks to track owner to ensure correct semantics 2009-09-25 14:14:35 -07:00
spl-taskq.c Optimize lowest outstanding taskqid calculation in taskq_lowest_id() 2010-01-04 15:52:26 -08:00
spl-thread.c Rename modules to module and update references 2009-01-15 10:44:54 -08:00
spl-time.c Prevent integer overflow after ~164 days of uptime. 2009-07-14 15:23:25 -07:00
spl-vnode.c Set cwd to '/' for the process executing insmod. 2009-10-01 16:06:15 -07:00
spl-xdr.c Minor bug fix in XDR code introduced in last minute change before landing. 2009-03-11 16:27:35 -07:00