Well, Allen (the original VTd maintainer and the author of the IGD quirk code)
agrees that the original IGD quirk timeout code just used the VTd timeout as a
convenience. He's the one who identified 670 msec as the theoretical max
latency for IGD access but, due to certification issues, suggest
>>> On 17.11.14 at 15:51, wrote:
> My primary goal is to decouple the IGD quirk code from the VTd timeout value,
> the two are unrelated and shouldn't be using the same define. In the process
> we can clean up the IGD code so that, if a user wants, the user can specify a
> more appropriate tim
My primary goal is to decouple the IGD quirk code from the VTd timeout value,
the two are unrelated and shouldn't be using the same define. In the process
we can clean up the IGD code so that, if a user wants, the user can specify a
more appropriate timeout value for the quirk code. There's no
>>> On 17.11.14 at 15:27, wrote:
> I'm a big believer in backward compatibility, especially in not doing things
> that change current defined behavior. The current `snb_igd_quirk' flag
> enables the quirk code with a 1sec timeout. Even though that value is
> excessive silently changing the me
I'm a big believer in backward compatibility, especially in not doing things
that change current defined behavior. The current `snb_igd_quirk' flag enables
the quirk code with a 1sec timeout. Even though that value is excessive
silently changing the meaning of the parameter just seems wrong.
>>> On 17.11.14 at 14:32, wrote:
> Hmm, good ideas. How about I change the `snb_igd_quirk' parameter to be:
>
> snb_igd_quirk => current behavior, enable
> quirk with 1 sec timeout
> snb_igd_quirk=default => enable quirk with theoretical max
> t
Hmm, good ideas. How about I change the `snb_igd_quirk' parameter to be:
snb_igd_quirk => current behavior, enable quirk
with 1 sec timeout
snb_igd_quirk=default => enable quirk with theoretical max
timeout of 670 msec
snb_igd_qui
>>> On 17.11.14 at 05:11, wrote:
> @@ -237,6 +254,18 @@
> }
> }
>
> +static void __init parse_snb_timeout(const char *s)
> +{
> +
> + if (*s == '\0')
> + snb_igd_timeout = SNB_IGD_TIMEOUT;
> + else
> + snb_igd_timeout = MILLISECS(simple_strtoul(s, &s, 0));
>