CVS log for linux-2.6-xfs/fs/xfs/xfs_trans_ail.c

[BACK] Up to [Development] / linux-2.6-xfs / fs / xfs

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.93 / (download) - annotate - [select for diffs], Mon Oct 27 14:50:32 2008 UTC (8 years, 11 months ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD
Changes since 1.92: +1 -1 lines
Diff to previous 1.92 (colored)

correctly select first log item to push

Under heavy metadata load we are seeing log hangs. The
AIL has items in it ready to be pushed, and they are within
the push target window. However, we are not pushing them
when the last pushed LSN is less than the LSN of the
first log item on the AIL. This is a regression introduced
by the AIL push cursor modifications.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Merge of xfs-linux-melb:xfs-kern:32409a by kenmcd.

  correctly select first log item to push

Revision 1.92 / (download) - annotate - [select for diffs], Fri Oct 17 02:58:35 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.91: +21 -20 lines
Diff to previous 1.91 (colored)

Finish removing the mount pointer from the AIL API

Change all the remaining AIL API functions that are passed
struct xfs_mount pointers to pass pointers directly to the
struct xfs_ail being used. With this conversion, all external
access to the AIL is via the struct xfs_ail. Hence the operation
and referencing of the AIL is almost entirely independent of
the xfs_mount that is using it - it is now much more tightly
tied to the log and the items it is tracking in the log than
it is tied to the xfs_mount.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Merge of xfs-linux-melb:xfs-kern:32353a by kenmcd.

  Finish removing the mount pointer from the AIL API

Revision 1.91 / (download) - annotate - [select for diffs], Thu Oct 16 05:23:50 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.90: +29 -27 lines
Diff to previous 1.90 (colored)

Move the AIL lock into the struct xfs_ail

Bring the ail lock inside the struct xfs_ail. This means
the AIL can be entirely manipulated via the struct xfs_ail rather
than needing both the struct xfs_mount and the struct xfs_ail.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Merge of xfs-linux-melb:xfs-kern:32350a by kenmcd.

  Move the AIL lock into the struct xfs_ail

Revision 1.90 / (download) - annotate - [select for diffs], Thu Oct 16 05:21:47 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.89: +42 -75 lines
Diff to previous 1.89 (colored)

move the AIl traversal over to a consistent interface

With the new cursor interface, it makes sense to make all the
traversing code use the cursor interface and make the old one go
away. This means more of the AIL interfacing is done by passing
struct xfs_ail pointers around the place instead of struct
xfs_mount pointers.

We can replace the use of xfs_trans_first_ail() in
xfs_log_need_covered() as it is only checking if the AIL is empty.
We can do that with a call to xfs_trans_ail_tail() instead, where a
zero LSN returned indicates and empty AIL...

Signed-off-by: Dave Chinner <david@fromorbit.com>
Merge of xfs-linux-melb:xfs-kern:32348a by kenmcd.

  move the AIl traversal over to a consistent interface

Revision 1.89 / (download) - annotate - [select for diffs], Thu Oct 16 05:20:53 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.88: +151 -56 lines
Diff to previous 1.88 (colored)

Use a cursor for AIL traversal.

To replace the current generation number ensuring sanity of the AIL
traversal, replace it with an external cursor that is linked to the
AIL.

Basically, we store the next item in the cursor whenever we want to
drop the AIL lock to do something to the current item.  When we
regain the lock. the current item may already be free, so we can't
reference it, but the next item in the traversal is already held in
the cursor.

When we move or delete an object, we search all the active cursors
and if there is an item match we clear the cursor(s) that point to
the object. This forces the traversal to restart transparently.

We don't invalidate the cursor on insert because the cursor still
points to a valid item. If the intem is inserted between the current
item and the cursor it does not matter; the traversal is considered
to be past the insertion point so it will be picked up in the next
traversal.

Hence traversal restarts pretty much disappear altogether with this
method of traversal, which should substantially reduce the overhead
of pushing on a busy AIL.

Version 2
o add restart logic
o comment cursor interface
o minor cleanups

Signed-off-by: Dave Chinner <david@fromorbit.com>
Merge of xfs-linux-melb:xfs-kern:32347a by kenmcd.

  Use a cursor for AIL traversal.

Revision 1.88 / (download) - annotate - [select for diffs], Thu Oct 16 05:20:00 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.87: +49 -38 lines
Diff to previous 1.87 (colored)

Allocate the struct xfs_ail

Rather than embedding the struct xfs_ail in the struct xfs_mount,
allocate it during AIL initialisation. Add a back pointer to
the struct xfs_ail so that we can pass around the xfs_ail
and still be able to access the xfs_mount if need be. This
is th first step involved in isolating the AIL implementation
from the surrounding filesystem code.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Merge of xfs-linux-melb:xfs-kern:32346a by kenmcd.

  Allocate the struct xfs_ail

Revision 1.87 / (download) - annotate - [select for diffs], Wed Apr 9 06:17:24 2008 UTC (9 years, 6 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.86: +1 -1 lines
Diff to previous 1.86 (colored)

replace remaining __FUNCTION__ occurrences

__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Merge of xfs-linux-melb:xfs-kern:30775a by kenmcd.

  __FUNCTION__ is gcc-specific, use __func__

Revision 1.86 / (download) - annotate - [select for diffs], Tue Mar 11 15:02:32 2008 UTC (9 years, 7 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.85: +60 -89 lines
Diff to previous 1.85 (colored)

Replace custom AIL linked-list code with struct list_head

Replace the xfs_ail_entry_t with a struct list_head and clean
the surrounding code up. Also fixes a livelock in
xfs_trans_first_push_ail() by terminating the loop at the
head of the list correctly.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Merge of xfs-linux-melb:xfs-kern:30636a by kenmcd.

  Replace custom AIL linked-list code with struct list_head.
  Fix livelock in xfs_trans_first_push_ail() by terminating search loop
  correctly.

Revision 1.85 / (download) - annotate - [select for diffs], Fri Feb 22 05:21:27 2008 UTC (9 years, 7 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.84: +10 -7 lines
Diff to previous 1.84 (colored)

xfsaild causing too many wakeups

Idle state is not being detected properly by the xfsaild push code.
The current idle state is detected by an empty list which may never
happen with mostly idle filesystem or one using lazy superblock
counters. A single dirty item in the list that exists beyond the
push target can result repeated looping attempting to push
up to the target because it fails to check if the push target
has been acheived or not.

Fix by considering a dirty list with everything past the target
as an idle state and set the timeout appropriately.
Merge of xfs-linux-melb:xfs-kern:30532a by kenmcd.

  Move the aild to idle state if we have pushed past the target
  we have been given.

Revision 1.84 / (download) - annotate - [select for diffs], Fri Jan 18 15:06:58 2008 UTC (9 years, 9 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.83: +28 -9 lines
Diff to previous 1.83 (colored)

Make xfs_ail_check check less by default

Checking the entire AIL on every insert and remove is
prohibitively expensive - the sustained sequntial create rate
on a single disk drops from about 1800/s to 60/s because of
this checking resulting in the xfslogd becoming cpu bound.

By default on debug builds, only check the next and previous
entries in the list to ensure they are ordered correctly.
If you really want, define XFS_TRANS_DEBUG to use the old
behaviour.
Merge of xfs-linux-melb:xfs-kern:30372a by kenmcd.

  Make exhaustive AIL checking only occur when XFS_TRANS_DEBUG
  is defined to prevent excessive performance loss on normal
  debug kernels.

Revision 1.83 / (download) - annotate - [select for diffs], Fri Jan 18 15:06:09 2008 UTC (9 years, 9 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.82: +178 -91 lines
Diff to previous 1.82 (colored)

Move AIL pushing into it's own thread

When many hundreds to thousands of threads all try to do simultaneous
transactions and the log is in a tail-pushing situation (i.e. full),
we can get multiple threads walking the AIL list and contending on
the AIL lock.

The AIL push is, in effect, a simple I/O dispatch algorithm complicated
by the ordering constraints placed on it by the transaction subsystem.
It really does not need multiple threads to push on it - even when
only a single CPU is pushing the AIL, it can push the I/O out far faster
that pretty much any disk subsystem can handle.

So, to avoid contention problems stemming from multiple list walkers,
move the list walk off into another thread and simply provide a "target"
to push to. When a thread requires a push, it sets the target and wakes
the push thread, then goes to sleep waiting for the required amount
of space to become available in the log.

This mechanism should also be a lot fairer under heavy load as the
waiters will queue in arrival order, rather than queuing in "who completed
a push first" order.

Also, by moving the pushing to a separate thread we can do more effectively
overload detection and prevention as we can keep context from loop iteration
to loop iteration. That is, we can push only part of the list each loop and not
have to loop back to the start of the list every time we run. This should
also help by reducing the number of items we try to lock and/or push items
that we cannot move.

Note that this patch is not intended to solve the inefficiencies in the
AIL structure and the associated issues with extremely large list contents.
That needs to be addresses separately; parallel access would cause problems
to any new structure as well, so I'm only aiming to isolate the structure
from unbounded parallelism here.
Merge of xfs-linux-melb:xfs-kern:30371a by kenmcd.

  factor the guts of the AIL push code to allow it to be called
  from a separate thread. Change the push interface to update a target
  and wake up the push thread instead of doing the push itself.

Revision 1.82 / (download) - annotate - [select for diffs], Fri Sep 21 04:09:25 2007 UTC (10 years ago) by donaldd.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.81: +23 -29 lines
Diff to previous 1.81 (colored)

Unwrap AIL_LOCK
Merge of xfs-linux-melb:xfs-kern:29739a by kenmcd.

Revision 1.81 / (download) - annotate - [select for diffs], Thu Aug 23 16:00:34 2007 UTC (10 years, 1 month ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.80: +1 -0 lines
Diff to previous 1.80 (colored)

Radix tree based inode caching

One of the perpetual scaling problems XFS has is indexing
it's incore inodes. We currently uses hashes and the default
hash sizes chosen can only ever be a tradeoff between memory
consumption and the maximum realistic size of the cache.

As a result, anyone who has millions of inodes cached on a
filesystem needs to tunes the size of the cache via the ihashsize
mount option to allow decent scalability with inode cache
operations.

A further problem is the separate inode cluster hash, whose size is
based on the ihashsize but is smaller, and so under certain
conditions (sparse cluster cache population) this can become
a limitation long before the inode hash is causing issues.

The following patchset removes the inode hash and cluster hash
and replaces them with radix trees to avoid the scalability
limitations of the hashes. It also reduces the size of the
inodes by 3 pointers....
Merge of xfs-linux-melb:xfs-kern:29481a by kenmcd.

  Convert xfs inode caches from hashes to radix trees.

Revision 1.80 / (download) - annotate - [select for diffs], Fri Dec 15 05:09:18 2006 UTC (10 years, 10 months ago) by vapo.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.79: +1 -1 lines
Diff to previous 1.79 (colored)

Workaround log space issue by increasing XFS_TRANS_PUSH_AIL_RESTARTS
Merge of xfs-linux-melb:xfs-kern:27750a by kenmcd.

  pv 959264, rv chatz - Workaround log space issue by increasing XFS_TRANS_PUSH_AIL_RESTARTS

Revision 1.79 / (download) - annotate - [select for diffs], Fri Aug 18 04:06:19 2006 UTC (11 years, 2 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.78: +2 -2 lines
Diff to previous 1.78 (colored)

Add lock annotations to xfs_trans_update_ail and xfs_trans_delete_ail

xfs_trans_update_ail and xfs_trans_delete_ail get called with the AIL lock
held, and release it.  Add lock annotations to these two functions so that
sparse can check callers for lock pairing, and so that sparse will not
complain about these functions since they intentionally use locks in this
manner.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Merge of xfs-linux-melb:xfs-kern:26807a by kenmcd.

  Add lock annotations to xfs_trans_update_ail and xfs_trans_delete_ail

Revision 1.78 / (download) - annotate - [select for diffs], Thu Jun 15 03:58:11 2006 UTC (11 years, 4 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.77: +0 -1 lines
Diff to previous 1.77 (colored)

Remove version 1 directory code.  Never functioned on Linux, just pure bloat.
Merge of xfs-linux-melb:xfs-kern:26251a by kenmcd.

Revision 1.77 / (download) - annotate - [select for diffs], Tue May 30 15:48:50 2006 UTC (11 years, 4 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.76: +3 -2 lines
Diff to previous 1.76 (colored)

Shutdown the filesystem if all device paths have gone.  Made shutdown vop flags consistent with sync vop flags declarations too.
Merge of xfs-linux-melb:xfs-kern:26096a by kenmcd.

Revision 1.76 / (download) - annotate - [select for diffs], Fri Sep 23 03:51:28 2005 UTC (12 years ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.75: +12 -26 lines
Diff to previous 1.75 (colored)

Update license/copyright notices to match the prefered SGI boilerplate.
Merge of xfs-linux-melb:xfs-kern:23903a by kenmcd.

Revision 1.75 / (download) - annotate - [select for diffs], Fri Sep 23 03:48:50 2005 UTC (12 years ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.74: +2 -3 lines
Diff to previous 1.74 (colored)

Remove xfs_macros.c, xfs_macros.h, rework headers a whole lot.
Merge of xfs-linux-melb:xfs-kern:23901a by kenmcd.

Revision 1.74 / (download) - annotate - [select for diffs], Mon Jul 25 06:04:24 2005 UTC (12 years, 2 months ago) by tes.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.73: +1 -1 lines
Diff to previous 1.73 (colored)

Need to unlock the AIL before calling xfs_force_shutdown() because
when it goes to force out the log, and get the tail lsn, it will
want to get the AIL lock.
Merge of xfs-linux-melb:xfs-kern:23260a by kenmcd.

  Need to unlock the AIL before calling xfs_force_shutdown() because
  when it goes to force out the log, and get the tail lsn, it will
  want to get the AIL lock.

Revision 1.73 / (download) - annotate - [select for diffs], Tue May 18 15:41:26 2004 UTC (13 years, 5 months ago) by roehrich
Branch: MAIN
Changes since 1.72: +4 -4 lines
Diff to previous 1.72 (colored)

Switch all XFSDEBUG to DEBUG

Revision 1.72 / (download) - annotate - [select for diffs], Mon Sep 8 03:47:34 2003 UTC (14 years, 1 month ago) by sandeen
Branch: MAIN
Changes since 1.71: +0 -1 lines
Diff to previous 1.71 (colored)

remove doubly-included header files

Revision 1.71 / (download) - annotate - [select for diffs], Thu Aug 21 19:47:57 2003 UTC (14 years, 1 month ago) by sandeen
Branch: MAIN
Changes since 1.70: +8 -8 lines
Diff to previous 1.70 (colored)

Re-work xfs stats macros to support per-cpu data

Revision 1.70 / (download) - annotate - [select for diffs], Fri Jun 27 18:04:26 2003 UTC (14 years, 3 months ago) by cattelan
Branch: MAIN
Changes since 1.69: +597 -0 lines
Diff to previous 1.69 (colored)

The Big Move
linux/fs/xfs/xfs_trans_ail.c 1.68 Renamed to xfs_trans_ail.c

Revision 1.69 / (download) - annotate - [select for diffs], Fri Jun 27 17:57:21 2003 UTC (14 years, 3 months ago) by cattelan
Branch: MAIN
CVS Tags: DENUKE
Changes since 1.68: +0 -597 lines
Diff to previous 1.68 (colored)

Nuke

Revision 1.68 / (download) - annotate - [select for diffs], Thu May 1 16:22:06 2003 UTC (14 years, 5 months ago) by cattelan
Branch: MAIN
CVS Tags: XFS-1_3_0pre1
Changes since 1.67: +13 -1 lines
Diff to previous 1.67 (colored)

Rework the way xfs includes xfs_<blah>.h headers.
This reduces a lot of the compile dependenciesÂ,
and should reduce some of the "recompile all" situations.

Revision 1.67 / (download) - annotate - [select for diffs], Tue Apr 15 23:16:46 2003 UTC (14 years, 6 months ago) by cattelan
Branch: MAIN
Changes since 1.66: +15 -18 lines
Diff to previous 1.66 (colored)

Whitespace cleanup
Clean up some whitespace... revert some whitespace changes from previous whitespace cleanup (incorrect tabs)

Revision 1.66 / (download) - annotate - [select for diffs], Wed Oct 23 04:21:07 2002 UTC (14 years, 11 months ago) by kaos
Branch: MAIN
Changes since 1.65: +10 -10 lines
Diff to previous 1.65 (colored)

Undoes mod:     2.4.x-xfs:slinx:130826a
Revert STATIC->static change

Revision 1.65 / (download) - annotate - [select for diffs], Wed Oct 23 03:54:05 2002 UTC (14 years, 11 months ago) by kaos
Branch: MAIN
Changes since 1.64: +10 -10 lines
Diff to previous 1.64 (colored)

Replace STATIC with static in xfs code

Revision 1.64 / (download) - annotate - [select for diffs], Wed Jul 10 19:00:42 2002 UTC (15 years, 3 months ago) by sandeen
Branch: MAIN
Changes since 1.63: +29 -29 lines
Diff to previous 1.63 (colored)

whitespace cleanup

Revision 1.63 / (download) - annotate - [select for diffs], Tue Jun 4 16:30:46 2002 UTC (15 years, 4 months ago) by sandeen
Branch: MAIN
Changes since 1.62: +1 -1 lines
Diff to previous 1.62 (colored)

Update copyright dates

Revision 1.62 / (download) - annotate - [select for diffs], Thu Mar 28 03:30:43 2002 UTC (15 years, 6 months ago) by lord
Branch: MAIN
Changes since 1.61: +1 -1 lines
Diff to previous 1.61 (colored)

use unsigned long to hold irq state

Revision 1.61 / (download) - annotate - [select for diffs], Thu Mar 28 03:18:22 2002 UTC (15 years, 6 months ago) by lord
Branch: MAIN
Changes since 1.60: +1 -1 lines
Diff to previous 1.60 (colored)

ensure unsigned long used to store irq state

Revision 1.60 / (download) - annotate - [select for diffs], Wed Mar 6 20:12:43 2002 UTC (15 years, 7 months ago) by lord
Branch: MAIN
Changes since 1.59: +7 -14 lines
Diff to previous 1.59 (colored)

remove ancient INTERRUPT_LATENCY_TESTING code

Revision 1.59 / (download) - annotate - [select for diffs], Thu Apr 19 02:37:23 2001 UTC (16 years, 6 months ago) by nathans
Branch: MAIN
CVS Tags: Linux-2_4_5-merge
Changes since 1.58: +8 -8 lines
Diff to previous 1.58 (colored)

change XFS_STATS macro so that it doesn't rely on cpp ## to construct
individual field names for the xfsstats structure.  fixes up some gcc
compiler warnings, for recent versions of gcc.

Revision 1.58 / (download) - annotate - [select for diffs], Wed Apr 11 16:27:03 2001 UTC (16 years, 6 months ago) by lord
Branch: MAIN
Changes since 1.57: +5 -21 lines
Diff to previous 1.57 (colored)

Kill gratuitous prototypes

Revision 1.57 / (download) - annotate - [select for diffs], Wed Apr 11 01:44:54 2001 UTC (16 years, 6 months ago) by cattelan
Branch: MAIN
Changes since 1.56: +1 -1 lines
Diff to previous 1.56 (colored)

Get rid of the last compiler warning OFF flags

Revision 1.56 / (download) - annotate - [select for diffs], Mon Sep 25 05:42:07 2000 UTC (17 years ago) by nathans
Branch: MAIN
CVS Tags: Release-1_0_0, PreRelease-0_10
Changes since 1.55: +1 -32 lines
Diff to previous 1.55 (colored)

use xfs.h, remove all traces of SIM, push extern declarations into headers,
dead code removal.

Revision 1.55 / (download) - annotate - [select for diffs], Tue Jul 18 01:41:36 2000 UTC (17 years, 3 months ago) by nathans
Branch: MAIN
Changes since 1.54: +9 -9 lines
Diff to previous 1.54 (colored)

rework the xfs stats interface to facilitate code sharing.  if there
is no interface available to export the stats (i.e. procfs), don't
bother compiling them in.

Revision 1.54 / (download) - annotate - [select for diffs], Fri Jun 9 06:40:03 2000 UTC (17 years, 4 months ago) by ananth
Branch: MAIN
Changes since 1.53: +0 -1 lines
Diff to previous 1.53 (colored)

Merge of 2.3.99pre2-xfs:slinx:63295a originally by nathans on 06/03/00
  remove all references to stuff from ksa.h and psa.h.

Revision 1.53 / (download) - annotate - [select for diffs], Fri Jun 9 02:50:02 2000 UTC (17 years, 4 months ago) by kenmcd
Branch: MAIN
CVS Tags: GPL-ENCUMBRANCE
Changes since 1.52: +25 -12 lines
Diff to previous 1.52 (colored)

Updated copyright and license notices, ready for open source release
Merge of 2.3.99pre2-xfs:slinx:55821a by ananth.

Revision 1.52 / (download) - annotate - [select for diffs], Fri Jun 9 02:10:00 2000 UTC (17 years, 4 months ago) by cattelan
Branch: MAIN
CVS Tags: DELETE
Changes since 1.51: +1 -3 lines
Diff to previous 1.51 (colored)

Merge of 2.3.99pre2-xfs:slinx:46541a by ananth.

  Merge of 2.3.42-xfs:slinx:46541a by ananth.
  Header file cleanup
  removed the last of the
  #if defined(__linux__)
  #include <xfs_linux>
  #endif
  All os specific include file switches should now done
  in xfs_os_defs.h

Revision 1.51 / (download) - annotate - [select for diffs], Fri Jun 9 00:03:30 2000 UTC (17 years, 4 months ago) by cattelan
Branch: MAIN
Changes since 1.50: +19 -1 lines
Diff to previous 1.50 (colored)

Merge of 2.3.99pre2-xfs:slinx:44186a by ananth.

  Merge of 2.3.42-xfs:slinx:44186a by ananth.
  Copied GPL from slinx-xfs tree.

Revision 1.50 / (download) - annotate - [select for diffs], Fri Feb 11 03:35:55 2000 UTC (17 years, 8 months ago) by mostek
Branch: MAIN
Changes since 1.49: +2 -2 lines
Diff to previous 1.49 (colored)

Fix an assert by using the XFS_LSN_CMP macro.
Another endian bug.

Revision 1.49 / (download) - annotate - [select for diffs], Thu Jan 27 15:28:58 2000 UTC (17 years, 8 months ago) by lord
Branch: MAIN
Changes since 1.48: +3 -3 lines
Diff to previous 1.48 (colored)

Ensure all LSN comparisons are done via macros

Revision 1.48 / (download) - annotate - [select for diffs], Mon Jan 24 21:38:02 2000 UTC (17 years, 8 months ago) by lord
Branch: MAIN
Changes since 1.47: +0 -0 lines
Diff to previous 1.47 (colored)

Merge from irix/irix6.5f to pingu/slinx-xfs
Merge of irix6.5f:irix:32673a created by doucette on 11/05/99
  Clean up xfs_trans_next_ail, it can't have a null gen pointer handed
  to it so don't check it except in ASSERT.

Revision 1.47 / (download) - annotate - [select for diffs], Wed Nov 17 19:22:23 1999 UTC (17 years, 11 months ago) by lord
Branch: MAIN
Changes since 1.46: +1 -1 lines
Diff to previous 1.46 (colored)

replace struct buf and buf_t references with xfs_buf and xfs_buf_t

Revision 1.46 / (download) - annotate - [select for diffs], Mon Nov 15 23:07:16 1999 UTC (17 years, 11 months ago) by lord
Branch: MAIN
Changes since 1.45: +3 -4 lines
Diff to previous 1.45 (colored)

Merge from irix/irix6.5f to pingu/slinx-xfs
Merge of irix6.5f:irix:32673a created by doucette on 11/05/99
  Clean up xfs_trans_next_ail, it can't have a null gen pointer handed
  to it so don't check it except in ASSERT.

Revision 1.45 / (download) - annotate - [select for diffs], Wed Aug 18 17:43:46 1999 UTC (18 years, 2 months ago) by cattelan
Branch: MAIN
Changes since 1.44: +4 -1 lines
Diff to previous 1.44 (colored)

First compiling version of mkfs unsing XFS libsim.
Mostly just addtions of cut up irix header files.

Revision 1.44 / (download) - annotate - [select for diffs], Tue Jun 29 17:22:08 1999 UTC (18 years, 3 months ago) by overby
Branch: MAIN
Changes since 1.43: +8 -1 lines
Diff to previous 1.43 (colored)

if _xfs_trans_delete_ail() fails to delete a log item it silently
returns, leaving the AIL locked.  Change it to:

 (1) print an message using xfs_cmn_err, with a new error tag (this
     allows us to turn the error message into an assert in the field)

 (2) shut down the filesystem

Revision 1.43 / (download) - annotate - [select for diffs], Thu Feb 4 01:28:30 1999 UTC (18 years, 8 months ago) by doucette
Branch: MAIN
Changes since 1.42: +3 -1 lines
Diff to previous 1.42 (colored)

Change includes for v2 directory support.

Revision 1.42 / (download) - annotate - [select for diffs], Sat Mar 28 02:32:50 1998 UTC (19 years, 6 months ago) by rcc
Branch: MAIN
Changes since 1.41: +13 -1 lines
Diff to previous 1.41 (colored)

maintain new tail-pushing counters
pv: 581980  rv: doucette@engr, kayuri@engr

Revision 1.41 / (download) - annotate - [select for diffs], Fri Mar 20 01:41:03 1998 UTC (19 years, 7 months ago) by kayuri
Branch: MAIN
Changes since 1.40: +8 -5 lines
Diff to previous 1.40 (colored)

rv: doucette@engr
pv: 576216
In the forced shutdown case, if we do not find the log item in the ail, we
still need to unlock the ail before exiting _xfs_trans_delete_ail() otherwise
we can leave the ail locked permanently. Fixed this.
In the normal case, we should not get into a situation where we are processing
the callbacks, and we do not find the log item in the ail.

Revision 1.40 / (download) - annotate - [select for diffs], Thu Jan 8 04:54:20 1998 UTC (19 years, 9 months ago) by doucette
Branch: MAIN
Changes since 1.39: +9 -1 lines
Diff to previous 1.39 (colored)

In xfs_trans_push_ail, notice when the filesystem is shutdown
while we're searching the list, as it means that the AIL
shouldn't be looked at further.
pv: 538827
rv: kayuri@engr

Revision 1.39 / (download) - annotate - [select for diffs], Sun Oct 12 08:07:12 1997 UTC (20 years ago) by nigel
Branch: MAIN
Changes since 1.38: +3 -3 lines
Diff to previous 1.38 (colored)

Remove ifdefs for INTR_KTHREADS and BASE_ITHREADS

Revision 1.38 / (download) - annotate - [select for diffs], Fri May 23 23:24:12 1997 UTC (20 years, 4 months ago) by rcc
Branch: MAIN
Changes since 1.37: +16 -7 lines
Diff to previous 1.37 (colored)

486431 - don't grab the AIL lock in trans_unlocked_item.  Ping-ponging
the cache line using ll/sc was killing us on a lego and isn't necessary

Revision 1.37 / (download) - annotate - [select for diffs], Wed Apr 30 22:41:12 1997 UTC (20 years, 5 months ago) by sup
Branch: MAIN
Changes since 1.36: +10 -3 lines
Diff to previous 1.36 (colored)

AIL handling when shutting down; minor changes.

Revision 1.36 / (download) - annotate - [select for diffs], Sat Jan 25 02:55:47 1997 UTC (20 years, 8 months ago) by sup
Branch: MAIN
Changes since 1.35: +24 -18 lines
Diff to previous 1.35 (colored)

First cut of XFS I/O error handling changes.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jan 5 22:37:58 1997 UTC (20 years, 9 months ago) by montep
Branch: MAIN
Changes since 1.34: +1 -2 lines
Diff to previous 1.34 (colored)

merge ficus into kudzu (1.33 ... 1.33.1.1)
> ----------------------------
> revision 1.33.1.1
> date: 1996/12/07 00:31:58;  author: sup;  state: Exp;  lines: +13 -39
> IOP_TRYLOCK can return a XFS_ITEM_PUSHBUF now.
> This indicates that the IOP_PUSHBUF routine needs to get called,
> with the AIL lock dropped.
> This is for bug 389343 where we're holding the AIL lock for
> too long.
> ,
> =============================================================================

Revision 1.34 / (download) - annotate - [select for diffs], Thu Dec 12 02:33:18 1996 UTC (20 years, 10 months ago) by sup
Branch: MAIN
Changes since 1.33: +14 -38 lines
Diff to previous 1.33 (colored)

389343: IOP_TRYLOCK can return a XFS_ITEM_PUSHBUF now.
This indicates that the IOP_PUSHBUF routine needs to get called,
with the AIL lock dropped.

Revision 1.33.1.1 / (download) - annotate - [select for diffs], Sat Dec 7 00:31:58 1996 UTC (20 years, 10 months ago) by sup
CVS Tags: DELETE-1
Changes since 1.33: +13 -39 lines
Diff to previous 1.33 (colored) next main 1.34 (colored)

IOP_TRYLOCK can return a XFS_ITEM_PUSHBUF now.
This indicates that the IOP_PUSHBUF routine needs to get called,
with the AIL lock dropped.
This is for bug 389343 where we're holding the AIL lock for
too long.
,

Revision 1.33 / (download) - annotate - [select for diffs], Fri Nov 1 21:51:01 1996 UTC (20 years, 11 months ago) by sup
Branch: MAIN
Changes since 1.32: +42 -9 lines
Diff to previous 1.32 (colored)

389343 AIL_LOCK holding off interrupts for too long.
Instead of turning the spinlock into a mutex, we are
giving up on iterating thru the AIL now. The thresholds
used now seem to take care of latency probs upto 500us
at least...

Revision 1.32 / (download) - annotate - [select for diffs], Thu Aug 15 17:56:58 1996 UTC (21 years, 2 months ago) by alexp
Branch: MAIN
Changes since 1.31: +3 -3 lines
Diff to previous 1.31 (colored)

Change AIL_LOCK from mutex back to spinlock for AIM performance regression
reasons.  Left mutex code under "ifdef INTERRUPT_LATENCY_TESTING" so we
can continue to find latency problems without hitting the AIL spinlock problem.

Revision 1.31 / (download) - annotate - [select for diffs], Fri Jul 26 21:20:04 1996 UTC (21 years, 2 months ago) by alexp
Branch: MAIN
Changes since 1.30: +21 -15 lines
Diff to previous 1.30 (colored)

Convert AIL_LOCK from mutex_spinlock to mutex under "ifdef INTR_KTHREADS"

Revision 1.30 / (download) - annotate - [select for diffs], Fri Feb 9 01:14:28 1996 UTC (21 years, 8 months ago) by doucette
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored)

Move the include of sys/debug.h under #define _KERNEL for compile errors.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Oct 24 07:44:36 1995 UTC (21 years, 11 months ago) by ack
Branch: MAIN
Changes since 1.28: +0 -0 lines
Diff to previous 1.28 (colored)

auto-merge of changes from /hosts/clyde/proj/banyan/isms/irix/kern/fs/xfs/RCS/xfs_trans_ail.c,v
> ----------------------------
> revision 1.28
> date: 1995/10/13 00:28:42;  author: doucette;  state: Exp;  lines: +2 -1
> Include sys/uuid.h since the uuid_t definition has been moved out
> of sys/types.h for DCE.
> =============================================================================

Revision 1.28 / (download) - annotate - [select for diffs], Tue Oct 17 08:20:22 1995 UTC (22 years ago) by ack
Branch: MAIN
Changes since 1.27: +2 -1 lines
Diff to previous 1.27 (colored)

auto-merge of changes from /hosts/clyde/proj/banyan/isms/irix/kern/fs/xfs/RCS/xfs_trans_ail.c,v
> ----------------------------
> revision 1.28
> date: 1995/10/13 00:28:42;  author: doucette;  state: Exp;  lines: +2 -1
> Include sys/uuid.h since the uuid_t definition has been moved out
> of sys/types.h for DCE.
> =============================================================================

Revision 1.27 / (download) - annotate - [select for diffs], Tue Aug 8 01:26:42 1995 UTC (22 years, 2 months ago) by ajs
Branch: MAIN
Changes since 1.26: +0 -1 lines
Diff to previous 1.26 (colored)

Don't reference m_ail_wait anymore.

Revision 1.26 / (download) - annotate - [select for diffs], Tue May 23 00:00:18 1995 UTC (22 years, 5 months ago) by ajs
Branch: MAIN
Changes since 1.25: +2 -0 lines
Diff to previous 1.25 (colored)

Back out the last change until I can test
it some more.

Revision 1.25 / (download) - annotate - [select for diffs], Mon May 22 23:49:29 1995 UTC (22 years, 5 months ago) by ajs
Branch: MAIN
Changes since 1.24: +8 -1 lines
Diff to previous 1.24 (colored)

Flush the log in xfs_trans_push_ail() if
we encountered a locked item in the log.

Revision 1.24 / (download) - annotate - [select for diffs], Fri Mar 31 20:05:54 1995 UTC (22 years, 6 months ago) by doucette
Branch: MAIN
Changes since 1.23: +1 -0 lines
Diff to previous 1.23 (colored)

Add an #ident line.

Revision 1.23 / (download) - annotate - [select for diffs], Thu Mar 9 04:10:55 1995 UTC (22 years, 7 months ago) by ajs
Branch: MAIN
Changes since 1.22: +35 -241 lines
Diff to previous 1.22 (colored)

Get rid of dead code, simplify the AIL push code, and
rework the locking to avoid holding the AIL lock while
calling the log code to update its notion of the tail.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Jan 31 18:59:59 1995 UTC (22 years, 8 months ago) by doucette
Branch: MAIN
Changes since 1.21: +5 -0 lines
Diff to previous 1.21 (colored)

Warning elimination: remove unused variables, tag some routines ARGSUSED,
add return statements, ifdef out some code.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Jan 31 00:09:20 1995 UTC (22 years, 8 months ago) by tap
Branch: MAIN
Changes since 1.20: +2 -2 lines
Diff to previous 1.20 (colored)

in the XFS simulator, define _KERNEL before including params.h. This
causes the off_t type to be defined as a long long rather than a long.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Jun 9 19:39:05 1994 UTC (23 years, 4 months ago) by wei_hu
Branch: MAIN
Changes since 1.19: +0 -1 lines
Diff to previous 1.19 (colored)

Eliminate include of <sys/uuid.h>.

Revision 1.19 / (download) - annotate - [select for diffs], Thu Jun 9 01:39:45 1994 UTC (23 years, 4 months ago) by miken
Branch: MAIN
Changes since 1.18: +80 -49 lines
Diff to previous 1.18 (colored)

Use new log reservation scheme

Revision 1.18 / (download) - annotate - [select for diffs], Tue May 10 21:55:02 1994 UTC (23 years, 5 months ago) by ajs
Branch: MAIN
Changes since 1.17: +332 -39 lines
Diff to previous 1.17 (colored)

Add the ability in xfs_trans_push_ail() to sleep waiting for
the AIL tail to move forward to a given LSN.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Apr 27 22:44:35 1994 UTC (23 years, 5 months ago) by ajs
Branch: MAIN
Changes since 1.16: +1 -1 lines
Diff to previous 1.16 (colored)

Parenthesize *restarts++ in xfs_trans_next_ail() so
we get the desired result.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Apr 27 22:29:32 1994 UTC (23 years, 5 months ago) by ajs
Branch: MAIN
Changes since 1.15: +3 -0 lines
Diff to previous 1.15 (colored)

Update the generation count in xfs_trans_next_ail()
when it has changed.

Revision 1.15 / (download) - annotate - [select for diffs], Thu Mar 10 19:07:56 1994 UTC (23 years, 7 months ago) by ajs
Branch: MAIN
Changes since 1.14: +48 -55 lines
Diff to previous 1.14 (colored)

Implement xfs_trans_push_ail().

Revision 1.14 / (download) - annotate - [select for diffs], Tue Jan 25 22:24:20 1994 UTC (23 years, 8 months ago) by ajs
Branch: MAIN
Changes since 1.13: +39 -2 lines
Diff to previous 1.13 (colored)

Add a routine to return the tail of the log.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Jan 14 20:06:48 1994 UTC (23 years, 9 months ago) by ajs
Branch: MAIN
Changes since 1.12: +156 -31 lines
Diff to previous 1.12 (colored)

Implement the AIL for real.  It's a doubly linked list.

Revision 1.12 / (download) - annotate - [select for diffs], Wed Jan 5 01:35:21 1994 UTC (23 years, 9 months ago) by ajs
Branch: MAIN
Changes since 1.11: +1 -1 lines
Diff to previous 1.11 (colored)

Make it compile in the kernel without warnings.

Revision 1.11 / (download) - annotate - [select for diffs], Fri Dec 31 01:55:31 1993 UTC (23 years, 9 months ago) by ajs
Branch: MAIN
Changes since 1.10: +1 -0 lines
Diff to previous 1.10 (colored)

First cut at making the transaction
code use the log manager interfaces.  xfs_trans.h now
depends on xfs_log.h, so we need to include it.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Dec 15 01:11:25 1993 UTC (23 years, 10 months ago) by doucette
Branch: MAIN
Changes since 1.9: +0 -1 lines
Diff to previous 1.9 (colored)

Remove include for xfs.h, this file has been removed.

Revision 1.9 / (download) - annotate - [select for diffs], Thu Dec 9 06:07:16 1993 UTC (23 years, 10 months ago) by doucette
Branch: MAIN
Changes since 1.8: +4 -0 lines
Diff to previous 1.8 (colored)

Various cleanups to get kernel-mode make to work.  Fix includes and
other problems for #ifndef SIM code.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Nov 19 21:46:00 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.7: +1 -0 lines
Diff to previous 1.7 (colored)

Include sys/uuid.h everywhere.

Revision 1.7 / (download) - annotate - [select for diffs], Wed Nov 17 02:17:54 1993 UTC (23 years, 11 months ago) by ajs
Branch: MAIN
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 (colored)

Added header file.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Nov 17 01:43:28 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.5: +5 -1 lines
Diff to previous 1.5 (colored)

Get rid of warnings from ragnarok compilers by adding casts, changing
types, adding lint comments.
Get rid of xfs_extdesc_t, replace with xfs_bmbt_rec_t.

Revision 1.5 / (download) - annotate - [select for diffs], Sat Nov 6 22:09:15 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.4: +3 -1 lines
Diff to previous 1.4 (colored)

Get rid of nested includes.

Revision 1.4 / (download) - annotate - [select for diffs], Fri Oct 29 21:18:57 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.3: +1 -0 lines
Diff to previous 1.3 (colored)

Include xfs_mount.h for xfs_mount_t.

Revision 1.3 / (download) - annotate - [select for diffs], Fri Oct 29 20:36:27 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.2: +3 -4 lines
Diff to previous 1.2 (colored)

Fix includes, get rid of warnings.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Oct 29 17:47:05 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored)

Comment out assertions that are erroneous for the SIM state;
probably should be ifdef'ed later.

Revision 1.1 / (download) - annotate - [select for diffs], Fri Oct 29 00:20:39 1993 UTC (23 years, 11 months ago) by ajs
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>