RE: [PATCH 4/5] I/OAT: Tighten descriptor setup performance

From: Nelson, Shannon
Date: Wed Oct 17 2007 - 20:41:56 EST


>-----Original Message-----
>From: Andrew Morton [mailto:akpm@xxxxxxxxxxxxxxxxxxxx]
>
>On Wed, 17 Oct 2007 17:14:33 -0700
>Shannon Nelson <shannon.nelson@xxxxxxxxx> wrote:
>
>> The change to the async_tx interface cost this driver some
>performance by
>> spreading the descriptor setup across several functions,
>including multiple
>> passes over the new descriptor chain. Here we bring the
>work back into one
>> primary function and only do one pass.
>>
>> Signed-off-by: Shannon Nelson <shannon.nelson@xxxxxxxxx>
>> ---
>>
>> drivers/dma/ioat_dma.c | 170
>+++++++++++++++++++++++++-----------------------
>> drivers/dma/ioatdma.h | 6 +-
>> 2 files changed, 93 insertions(+), 83 deletions(-)
>>
>> diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
>> index c44f551..117ac38 100644
>> --- a/drivers/dma/ioat_dma.c
>> +++ b/drivers/dma/ioat_dma.c
>> @@ -46,9 +46,12 @@
>> /* internal functions */
>> static void ioat_dma_start_null_desc(struct ioat_dma_chan
>*ioat_chan);
>> static void ioat_dma_memcpy_cleanup(struct ioat_dma_chan
>*ioat_chan);
>> +static inline struct ioat_desc_sw *ioat_dma_get_next_descriptor(
>> + struct
>ioat_dma_chan *ioat_chan);
>
>A forward-declared static inline is pretty weird. Does gcc
>actually do the
>right thing with it?

Well, I didn't inspect the opcodes generated...

>
>This function is far too large to be inlined anyway.
>

No prob, I can remove the "inline" and repost.

sln
-
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/