xfs
[Top] [All Lists]

TAKE - Move XFS out of the interrupt disabling game

To: linux-xfs@xxxxxxxxxxx
Subject: TAKE - Move XFS out of the interrupt disabling game
From: Steve Lord <lord@xxxxxxx>
Date: Thu, 23 May 2002 14:00:15 -0500
Sender: owner-linux-xfs@xxxxxxxxxxx
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



<Prev in Thread] Current Thread [Next in Thread>