On Wed, May 09 2007, Herbert Xu wrote: > Jens Axboe <[EMAIL PROTECTED]> wrote: > > > > diff --git a/include/asm-i386/scatterlist.h b/include/asm-i386/scatterlist.h > > index d7e45a8..794b68c 100644 > > --- a/include/asm-i386/scatterlist.h > > +++ b/include/asm-i386/scatterlist.h > > @@ -8,8 +8,11 @@ struct scatterlist { > > unsigned int offset; > > dma_addr_t dma_address; > > unsigned int length; > > + struct scatterlist *next; > > }; > > BTW, the crypto layer's scatterlist already has a chaining mechanism > using the existing structure. The only difference is that the chained > pointer is stored inside the 'struct page *' rather than a new pointer. > Its existence is flagged by a zero value in the length field. > > Now I'm not super-religious about this but we should at least consider > whether forking out 4 bytes in every scatterlist member is worthwhile > investment when we can use 12 bytes at the end instead.
>From a memory consumption POV, it's definitely a win to reuse the ->page member as a pointer to the next sgtable. I didn't do that originally to avoid complications in allocating and setting up the sg table, but I may very well reconsider that decision soonish. We can easily change this without disturbing the upper layers, so it's not a big deal to change now or later. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/