Re: [PATCH 09/10] Change table chaining layout

From: Linus Torvalds
Date: Thu Oct 25 2007 - 11:43:01 EST




On Thu, 25 Oct 2007, Rusty Russell wrote:
> On Wednesday 24 October 2007 01:22:55 Linus Torvalds wrote:
> >
> > Well, I'd personally actually prefer to *not* have the count be passed
> > down explicitly, because it's just too error prone.
>
> Well, the duplication is bad, but walking lists to find the length is
> inefficient so you pass around the length as well.

Nobody should *ever* walk the list to find the length. Does anybody really
do that? Yes, we pass the thing down, but do people *need* it?

[ Side note: some of the users of that length currently would seem to be
buggy in the presense of continuation entries, and seem to assume that
the "list" is just a contiguous array. In fatc, that's almost the only
valid use for the "count" thing, since any other use _has_ to walk it
entry by entry anyway, no? ]

The thing is, nobody should care. You walk the list to fill things in, or
to write it out to some HW-specific DMA table, you should never care about
the length. However, you *do* care about the "where does it end" part: to
be able to detect overflows (which should never happen, but from a
debugging standpoint it needs to be detectable rather than just silently
use or corrupt memory).

But if people really want/need the length, then we damn well should have a
"header" thing, not two independent "list + length" parameters.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/