On 4 Sep, Giorgos Keramidas wrote: > On 2004-09-03 14:58, Don Lewis <truckman_at_freebsd.org> wrote: >> Using two CPUs would give you at best a 2x speedup, and in this case it >> would be quite a bit less since both CPUs would be trying to access and >> modify the same data structure. Just using a better data structure is >> likely to speed things up much more than 2x. Something as simple as >> building the list in reverse order in pass 1 is likely to make a huge >> difference. > > Holding both a head and tail pointer to the singly-linked list should > probably make it easier to add nodes at the end of the list instead of > the head. I haven't read the source of fsck_ffs at all though, so I > don't know if I can come up with a working patch in a reasonable amount > of time. Yes, if fsck used the <sys/queue.h> macros, this data structure should probably be a STAILQ. The code if fsck is all hand rolled and it would be trivially easy to add a tail pointer. The head of the list in question is struct zlncnt *zlnhead; The only modifications needed would be in the initialization code in main.c, and the code that builds the list in pass1.c.Received on Fri Sep 03 2004 - 20:52:21 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:10 UTC