Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Jan 2000 16:12:48 -0800
From:      Kirk McKusick <mckusick@flamingo.McKusick.COM>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        dg@root.com, fs@freebsd.org
Subject:   Soft Update Checkin
Message-ID:  <200001100012.QAA13394@flamingo.McKusick.COM>

next in thread | raw e-mail | index | archive | help
I have completed the checkin of the performance changes in the state
that you have been testing. They should show up on your next system 
update. I enclose the log summary below.

	~Kirk

=-=-=-=-=-=

SCCS/s.ffs_softdep.c:

D 9.46	00/01/09 14:58:20	mckusick	86	85	00245/00103/04371
Several performance improvements for soft updates have been added:
1) Fastpath deletions. When a file is being deleted, check to see if it
   was so recently created that its inode has not yet been written to
   disk. If so, the delete can proceed to immediately free the inode.
2) Background writes: No file or block allocations can be done while the
   bitmap is being written to disk. To avoid these stalls, the bitmap is
   copied to another buffer which is written thus leaving the original
   available for futher allocations.
3) Link count tracking. Constantly track the difference in i_effnlink and
   i_nlink so that inodes that have had no change other than i_effnlink
   need not be written.
4) Identify buffers with rollback dependencies so that the buffer flushing
   daemon can choose to skip over them.

D 9.45	00/01/09 14:40:48	mckusick	85	84	00023/00021/04451
Keep tighter control of removal dependencies by limiting the number
of dirrem structure rather than the collaterally created freeblks
and freefile structures. Limit the rate of buffer dirtying during
periods of intense file removal.

D 9.44	00/01/09 14:19:25	mckusick	84	83	00021/00025/04451
Reorganize softdep_fsync so that it only does the inode-is-flushed
check before the inode is unlocked while grabbing its parent directory.
Once it is unlocked, other operations may slip in that could make
the inode-is-flushed check fail. Allowing other writes to the inode
before returning from fsync does not break the semantics of fsync
since we have flushed everything that was dirty at the time of the
fsync call.

D 9.43	00/01/09 13:44:42	mckusick	83	82	00017/00011/04459
Make static non-exported functions

D 9.42	00/01/09 13:34:14	mckusick	82	81	00001/00001/04469
The function request_cleanup() had a tsleep() with PCATCH. It is
quite dangerous, since the process may hold locks at the point,
and if it is stopped in that tsleep the machine may hang. Because
the sleep is so short, the PCATCH is not required here, so it has
been removed. From Dmitrij Tejblum <tejblum@arc.hq.cti.ru>

D 9.41	00/01/09 13:32:38	mckusick	81	80	00179/00141/04291
Conversion from BSD/OS to FreeBSD code base


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001100012.QAA13394>