xfs
[Top] [All Lists]

TAKE - implement xfs_incore and change delwri pagebuf handing

To: unlisted-recipients:; (no To-header on input)
Subject: TAKE - implement xfs_incore and change delwri pagebuf handing
From: lord@xxxxxxx
Date: Wed, 19 Jul 2000 21:51:26 -0500
Sender: owner-linux-xfs@xxxxxxxxxxx
This implements the incore function - which finds and locks a buffer if
it exists, but does not read anything from disk. This helps XFS in the
logbound case a lot - failing to find the buffer was causing a lot of
cpu spinning which was not getting us any forward progress.

It also takes the delayed write queue of pagebufs and makes flushing from
it a time based operation, we now keep pagebufs around a lot longer.

Date:  Wed Jul 19 19:47:46 PDT 2000
Workarea:  192.82.201.211:/usr/src/lord/2.4.0-test1

The following file(s) were checked into:
  bonnie.engr.sgi.com:/isms/slinx/2.4.0-test1-xfs


Modid:  2.4.0-test1-xfs:slinx:67181a
linux/fs/xfs/xfs_buf.h - 1.54
        - Fix xfs_incore interface, we need to map from blocks to offsets.

linux/include/linux/page_buf.h - 1.53
        - Remove some unused fields from the pagebuf, and add a flushtime field.

linux/fs/pagebuf/page_buf.c - 1.13
        - Implement pagebuf_find, it looks for existing pagebufs and returns
          them locked. Also change flush mechanism for delwri pagebufs to be 
time
          based, we now allow a pagebuf to stay dirty for 15 seconds since it
          was last dirtied. This is a fairly arbitrary number, we also need to
          factor in the amount of memory this is chewing up at some point.

linux/fs/pagebuf/page_buf_locking.c - 1.4
        - Break get_lockable_pagebuf into two so that we can use the find part 
of
          it for pagebuf_find().



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE - implement xfs_incore and change delwri pagebuf handing, lord <=