From: Brice Goglin <Brice.Goglin@inria.fr>
To: "Sosnowski, Maciej" <maciej.sosnowski@intel.com>
Cc: "Andrew J. Gallatin" <gallatin@myri.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] ioat-dca: force I/OAT DCA when disabled in BIOS
Date: Fri, 03 Apr 2009 19:41:22 +0200 [thread overview]
Message-ID: <49D64A42.9080304@inria.fr> (raw)
In-Reply-To: <129600E5E5FB004392DDC3FB599660D7910371D7@irsmsx504.ger.corp.intel.com>
Hello Maciej,
Thanks for at this.
Sosnowski, Maciej wrote:
> 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 <Brice.Goglin@inria.fr>
>> Signed-off-by: Andrew Gallatin <gallatin@myri.com>
>>
>>
>
> 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.
Well, that's exactly the reason why the patch only enforces DCA when
ioat_dca_force=1 is given. We obviously don't want to tweak registers
like this by default, unless the admin knows what he is doing.
Having to run a custom script is really annoying for many Dell machine
users where the tag_map is already correctly set by the BIOS. And you
have to make sure that the script runs before ioatdma is loaded (which
means you cannot built ioatdma inside the kernel, by the way).
By the way, do you have some ideas about how to filter bridges better?
Maybe somebody at Intel has a whitelist of intel bridges that could be
involved here?
thanks,
Brice
next prev parent reply other threads:[~2009-04-03 17:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-30 21:54 [RFC] ioat-dca: force I/OAT DCA when disabled in BIOS Brice Goglin
2009-04-03 15:17 ` Sosnowski, Maciej
2009-04-03 17:41 ` Brice Goglin [this message]
2009-04-09 13:03 ` Sosnowski, Maciej
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49D64A42.9080304@inria.fr \
--to=brice.goglin@inria.fr \
--cc=gallatin@myri.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.sosnowski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox