RE: [PATCH 4/5] I/OAT: Tighten descriptor setup performance
>-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
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
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
-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/