This changes were XFS I/O completion handler's run. They
used to be in the interrupt context, now they are handled
via a task queue in special threads. The main gain in this
is that we no longer have to disable interrupts in our
lock handling. So locks get lighter weight, and since
obtaining the irq state took time, things get faster.
The down side is a little more latency on I/O completion,
but since something needs to get scheduled to do the work
now.
Date: Thu May 23 11:57:09 PDT 2002
Workarea: jen.americas.sgi.com:/src/lord/xfs-noirq
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:120060a
linux/fs/xfs/xfs_log.c - 1.246
- add a mechanism for doing out of line log writes, turned off by
default
linux/fs/xfs/xfs_log_priv.h - 1.81
- we need a tq_struct pointer for out of line log write handling
linux/fs/xfs/linux/xfs_vfs.c - 1.26
- replace mp_mutex_spinlock with mutex_spinlock
linux/fs/xfs/linux/xfs_vnode.c - 1.74
- Changed args of VN_LOCK and VN_UNLOCK
linux/fs/xfs/linux/xfs_vnode.h - 1.32
- New definitions for VN_LOCK and VN_UNLOCK
linux/fs/xfs/support/sv.h - 1.5
- sv_t is now a waitqueue
linux/fs/xfs/support/sv.c - 1.5
- remove irq handling
linux/fs/xfs/support/mutex.h - 1.5
- remobe mp_mutex_spinlock, make mutex_spinlock be spin_lock
linux/fs/xfs/support/mrlock.c - 1.7
- remove irq handling
linux/fs/xfs/pagebuf/page_buf_locking.c - 1.10
- no need for disabling irq anymore in here
linux/fs/xfs/pagebuf/page_buf.c - 1.25
- We no longer need to use the irq versions of spinlocks in pagebuf,
also add an io completion daemon.
linux/fs/xfs/pagebuf/page_buf.h - 1.13
- Add prototype for pagebuf_queue_task
linux/fs/xfs/pagebuf/page_buf_internal.h - 1.6
- no changes
|