INN with hyperthreading/SMP

Forrest J. Cavalier III mibsoft at
Fri May 14 02:22:47 UTC 2004

> To:            inn-workers at
> Subject:       Re: INN with hyperthreading/SMP
> From:          Russ Allbery <rra at>
> Organization:  The Eyrie

> Hm, that doesn't make a lot of sense to me.  There's a reference count on
> the cache slots and they won't be purged if there are still references to
> them.  You do have to put a lock around the shared cache, of course.

That isn't what I saw when I looked at the comments or the code at
entry_find_oldest(void *data, void *cookie)....

**  Called by hash_traverse, this function finds the oldest entry with the
**  smallest refcount and stores it in the provided pointer so that it can be
**  freed.  This is used when the cache is full to drop the least useful
**  entry.

But I seem to recall that there was something else too....

I also seem to recall that when I pthread'ed nnrpd, the TDX code really
didn't look too promising.  You can increase the cache slots, but the cache
maintenance looked expensive.  Maybe not O(n*n), but I don't remember exactly.  

I do have an nnrpd completely pthreaded, but never ran under full load.  (I
think the trouble was that all the MMAPing of .IDX files was hitting the
available memory limit for a 32-bit address.)

More information about the inn-workers mailing list