Messages in this thread | | | Subject | Re: [PATCH] dmaengine: ioat setting ioat timeout as module parameter | From | Dave Jiang <> | Date | Wed, 1 Jul 2020 07:25:33 -0700 |
| |
On 7/1/2020 7:08 AM, leonid.ravich@dell.com wrote: > From: Leonid Ravich <Leonid.Ravich@emc.com> > > DMA transaction time to complition is a function of completion
> PCI bandwidth,transaction size and a queue depth. ^ space channel depth. ioat doesn't have queues. > So hard coded value for timeouts might be wrong > for some scenarios. > > Signed-off-by: Leonid Ravich <Leonid.Ravich@emc.com> > --- > drivers/dma/ioat/dma.c | 12 ++++++++++++ > drivers/dma/ioat/dma.h | 2 -- > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c > index 8ad0ad861c86..7621b5be5cf4 100644 > --- a/drivers/dma/ioat/dma.c > +++ b/drivers/dma/ioat/dma.c > @@ -26,6 +26,18 @@ > > #include "../dmaengine.h" > > +int complition_timeout = 200; > +module_param(complition_timeout, int, 0644); > +MODULE_PARM_DESC(complition_timeout, > + "set ioat complition timeout [msec] (default 200 [msec])");
completion_timeout
> +int idle_timeout = 2000; > +module_param(idle_timeout, int, 0644); > +MODULE_PARM_DESC(idle_timeout, > + "set ioat idel timeout [msec] (default 2000 [msec])"); > + > +#define IDLE_TIMEOUT msecs_to_jiffies(idle_timeout) > +#define COMPLETION_TIMEOUT msecs_to_jiffies(complition_timeout) > + > static char *chanerr_str[] = { > "DMA Transfer Source Address Error", > "DMA Transfer Destination Address Error", > diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h > index e6b622e1ba92..f7f31fdf14cf 100644 > --- a/drivers/dma/ioat/dma.h > +++ b/drivers/dma/ioat/dma.h > @@ -104,8 +104,6 @@ struct ioatdma_chan { > #define IOAT_RUN 5 > #define IOAT_CHAN_ACTIVE 6 > struct timer_list timer; > - #define COMPLETION_TIMEOUT msecs_to_jiffies(100) > - #define IDLE_TIMEOUT msecs_to_jiffies(2000) > #define RESET_DELAY msecs_to_jiffies(100) > struct ioatdma_device *ioat_dma; > dma_addr_t completion_dma; >
| |