[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-hackers
Subject: Re: More info on slow "rm" times with 2.2.1+
From: Terry Lambert <terry () lambert ! org>
Date: 1997-08-18 18:24:53
[Download RAW message or body]
> Ok - I can buy that - the last block will take longest to delete
> (since you have to skip over the previous, un-coalesced, entries...)
>
> But - I'm not sure that explains why deleting the last 300 files
> would have (3*300) 900 seconds with 2.2.1 in this situation, where
> it only took 2.1.7 3 seconds. Just from listening to the disk
> and watching I/O I can see that 2.2.1 is doing an *awful* lot of
> I/O 2.1.7 didn't do... could there be something in this locking?
Because the logic in VOP_LOCK is inverted, and you are taking a
sleep (mostly) on each delete, which in turn results in a context
switch. That's like saying "usleep( 10000);" between each one.
The need for it comes from vclean() (which, as I've said before,
must die).
People think the BSD4.4-Lite2 locking stuff is an improvement; it
is, but only from the API perspective. The inverted lock ordering
in VOP_LOCK specifically for the vnode reclaimation process is
bogus as hell. So is the VOP_ADVLOCK calling needing to be
implemented per FS. NFS Server locking requires a delay between
local assertion and local coelescing to allow for a failed attempt
at remote assertion to trigger a local backout, which can't happen
after a coelesce, so this is only going to become more obvious
as time goes on. I'm patient...
Terry Lambert
terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic