mirror of
https://github.com/adulau/aha.git
synced 2024-12-30 20:56:23 +00:00
I/OAT: tcp_dma_copybreak default value dependent on I/OAT version
I/OAT DMA performance tuning showed different optimal values of tcp_dma_copybreak for different I/OAT versions (4096 for 1.2 and 2048 for 2.0). This patch lets ioatdma driver set tcp_dma_copybreak value according to these results. [dan.j.williams@intel.com: remove some ifdefs] Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
09177e85d6
commit
16a37acaaf
3 changed files with 18 additions and 0 deletions
|
@ -1581,6 +1581,8 @@ struct ioatdma_device *ioat_dma_probe(struct pci_dev *pdev,
|
||||||
if (err)
|
if (err)
|
||||||
goto err_self_test;
|
goto err_self_test;
|
||||||
|
|
||||||
|
ioat_set_tcp_copy_break(device);
|
||||||
|
|
||||||
dma_async_device_register(&device->common);
|
dma_async_device_register(&device->common);
|
||||||
|
|
||||||
INIT_DELAYED_WORK(&device->work, ioat_dma_chan_watchdog);
|
INIT_DELAYED_WORK(&device->work, ioat_dma_chan_watchdog);
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <linux/dmapool.h>
|
#include <linux/dmapool.h>
|
||||||
#include <linux/cache.h>
|
#include <linux/cache.h>
|
||||||
#include <linux/pci_ids.h>
|
#include <linux/pci_ids.h>
|
||||||
|
#include <net/tcp.h>
|
||||||
|
|
||||||
#define IOAT_DMA_VERSION "2.18"
|
#define IOAT_DMA_VERSION "2.18"
|
||||||
|
|
||||||
|
@ -129,6 +130,20 @@ struct ioat_desc_sw {
|
||||||
struct dma_async_tx_descriptor async_tx;
|
struct dma_async_tx_descriptor async_tx;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline void ioat_set_tcp_copy_break(struct ioatdma_device *dev)
|
||||||
|
{
|
||||||
|
#ifdef CONFIG_NET_DMA
|
||||||
|
switch (dev->version) {
|
||||||
|
case IOAT_VER_1_2:
|
||||||
|
sysctl_tcp_dma_copybreak = 4096;
|
||||||
|
break;
|
||||||
|
case IOAT_VER_2_0:
|
||||||
|
sysctl_tcp_dma_copybreak = 2048;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_INTEL_IOATDMA) || defined(CONFIG_INTEL_IOATDMA_MODULE)
|
#if defined(CONFIG_INTEL_IOATDMA) || defined(CONFIG_INTEL_IOATDMA_MODULE)
|
||||||
struct ioatdma_device *ioat_dma_probe(struct pci_dev *pdev,
|
struct ioatdma_device *ioat_dma_probe(struct pci_dev *pdev,
|
||||||
void __iomem *iobase);
|
void __iomem *iobase);
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#define NET_DMA_DEFAULT_COPYBREAK 4096
|
#define NET_DMA_DEFAULT_COPYBREAK 4096
|
||||||
|
|
||||||
int sysctl_tcp_dma_copybreak = NET_DMA_DEFAULT_COPYBREAK;
|
int sysctl_tcp_dma_copybreak = NET_DMA_DEFAULT_COPYBREAK;
|
||||||
|
EXPORT_SYMBOL(sysctl_tcp_dma_copybreak);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dma_skb_copy_datagram_iovec - Copy a datagram to an iovec.
|
* dma_skb_copy_datagram_iovec - Copy a datagram to an iovec.
|
||||||
|
|
Loading…
Reference in a new issue