-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
kanishk rastogi wrote:
> hi all, I was trying to understand the xfs_buf_t management in XFS.
> I was looking at the xfs_bufhash_t which is used to keep the info
> of buffers which have ongoing transactions. I wanted to know if it
> uses it for caching these pages.
>
> As far as i can see in xfs_buf_relse calls ::
>
> list_del_init(&bp->b_hash_list);
>
> if the count drops down to 0 for the buffer...
>
> if (atomic_dec_and_lock(&bp->b_hold, &hash->bh_lock)) { if
> (bp->b_relse) { ----->set only in case of error??
> atomic_inc(&bp->b_hold); spin_unlock(&hash->bh_lock);
> (*(bp->b_relse)) (bp); } else if (bp->b_flags & XBF_FS_MANAGED) {
> ----> mostly unset......\
Indeed. that flag is used on exactly one buffer, the superblock.
Basically the superblock is pinned in memory and only flushed by the
filesystem.
> spin_unlock(&hash->bh_lock); } else { ASSERT(!(bp->b_flags &
> (XBF_DELWRI|_XBF_DELWRI_Q))); *list_del_init(&bp->b_hash_list);*
> spin_unlock(&hash->bh_lock); xfs_buf_free(bp); } }
>
> ---------------
>
> CMIIW: So it doesnt keeps buffers if they are not in use.... ??
buffers are released back to the buf_t zone when they are done.
zone allocation / free is very fast so managing lists of "free"
buffers doesn't make a lot of sense.
>
> I dont think that should be the case...
>
> -- regards kanishk
>
> ----------------------------------------------------------------------
>
>
> _______________________________________________ xfs mailing list
> xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFKhaWBNRmM+OaGhBgRAtqgAJ9CZfj0QXz8Yy7P4jYemgEPsvR9pQCfcSWM
a9OI8A4ckMdOuiXQ60o4PLE=
=OJAD
-----END PGP SIGNATURE-----
|