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

2007-10-17 Thread Nelson, Shannon
>-Original Message-
>From: Andrew Morton [mailto:[EMAIL PROTECTED] 
>
>On Wed, 17 Oct 2007 17:14:33 -0700
>Shannon Nelson <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
>> ---
>> 
>>  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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2007-10-17 Thread Andrew Morton
On Wed, 17 Oct 2007 17:14:33 -0700
Shannon Nelson <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
> ---
> 
>  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?

This function is far too large to be inlined anyway.


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


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

2007-10-17 Thread Andrew Morton
On Wed, 17 Oct 2007 17:14:33 -0700
Shannon Nelson [EMAIL PROTECTED] 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 [EMAIL PROTECTED]
 ---
 
  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?

This function is far too large to be inlined anyway.


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


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

2007-10-17 Thread Nelson, Shannon
-Original Message-
From: Andrew Morton [mailto:[EMAIL PROTECTED] 

On Wed, 17 Oct 2007 17:14:33 -0700
Shannon Nelson [EMAIL PROTECTED] 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 [EMAIL PROTECTED]
 ---
 
  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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/