[lkml]   [2009]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRE: [RFC] ioat-dca: force I/OAT DCA when disabled in BIOS
Brice Goglin wrote:
> Some machines (for instance Dell Poweredge servers) disable I/OAT DCA
> support in the BIOS without any way to reenable it.
> DCA may actually be enabled manually it in the processors' MSR and in
> upstream bridge registers. We have been doing this with a hacky userspace
> program, but we feel that the ioatdma driver may actually take care of it.
> Here's a patch doing so, if the ioat_dca_force module parameter is set
> to 1 on load.
> There are some things to improve:
> * Which pcidev should actually get DCA enabled? The patch below looks for
> Intel upstream bridges. Do we need a check for pdev->is_pcie ? Or maybe
> even look at pdev->pcie_type? It looks like the pcidev that need to be
> configured on my machines are PCI_EXP_TYPE_ROOT_PORT, but I am not sure
> it actually matters. Some Intel people will probably know how to fix this.
> * Any better name for #defin'ing bit #6 at offset 0x64 in the config-space
> of these bridges?
> Signed-off-by: Brice Goglin <>
> Signed-off-by: Andrew Gallatin <>

Hi Brice,

While this patch should work for some platforms (with I/OAT devices of IDs: 0x1a38, 0x360b, 0x65ff) it is not a platform generic solution.
Generally enabling DCA, like this dca_force() routine does, requires other settings including the tag_map which should be set by BIOS.
Thus it should be BIOS responsibility to prepare the whole required configuration for DCA.
For these reasons we don't want to include this solution in the ioatdma driver.
Please continue to use the userspace application instead.


 \ /
  Last update: 2009-04-03 17:21    [W:0.038 / U:6.584 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site