From: Alexander Duyck <alexander.duyck@gmail.com>
To: Alex Forster <alex@alexforster.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: Question about unsupported transceivers
Date: Thu, 15 Oct 2015 11:00:08 -0700 [thread overview]
Message-ID: <561FE9A8.1010409@gmail.com> (raw)
In-Reply-To: <D2454A0C.2931%alex@alexforster.com>
On 10/15/2015 10:13 AM, Alex Forster wrote:
> On 10/15/15, 12:17 PM, "Alexander Duyck" <alexander.duyck@gmail.com> wrote:
>
>
>> On 10/15/2015 08:43 AM, Alex Forster wrote:
>>> On 10/15/15, 11:30 AM, "Alexander Duyck" <alexander.duyck@gmail.com>
>>> wrote:
>>>
>>>> On 10/15/2015 07:46 AM, Alex Forster wrote:
>>>>> On 10/13/15, 4:34 PM, "Alexander Duyck" <alexander.duyck@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> If you are using Intel's out-of-tree ixgbe driver I believe the
>>>>>> module
>>>>>> parameters are comma separated with one index per port. So if you
>>>>>> have
>>>>>> two ports you should be passing "allow_unsupported_sfp=1,1", and for
>>>>>> 4
>>>>>> you would need four '1's.
>>>>> This seemed very promising. I compiled and installed the out of tree
>>>>> ixgbe
>>>>> driver and set the option in /etc/modprobe.d/ixgbe.conf. dmesg shows
>>>>> all
>>>>> eight "allow_unsupported_sfp enabled" messages but the last four ports
>>>>> still error out with the unsupported SFP message when running the
>>>>> tests.
>>>>>
>>>>> Before I start arbitrarily trying to patch out parts of the SFP
>>>>> verification code in ixgbe, are there any other tips I should know?
>>>> Can you send me the command you used to load the module, and the exact
>>>> number of ixgbe ports you have in the system? With that I could then
>>>> verify that the command was entered correctly as it is possible there
>>>> could still be an issue in the way the command was entered.
>>>>
>>>> One other possibility is that when the driver loads each load counts as
>>>> an instance in the module parameter array. So if for example you
>>>> unbind
>>>> the driver on one port and then later rebind it you will have consumed
>>>> one of the values in the array. Do it enough times and you exceed the
>>>> bounds of the array as you entered it and it will simply use the
>>>> default
>>>> value of 0.
>>>>
>>>> Also the output of "ethtool -i <ethX>" would be useful to verify that
>>>> you have the out-of-tree driver loaded and not the in kernel.
>>>>
>>>> - Alex
>>>>
>>> Er, let me try that again.
>>>
>>> https://gist.github.com/AlexForster/f5372c5b60153d278089
>>>
>>>
>>> Alex Forster
>>>
>>>
>> It looks like you are probably seeing interfaces be unbound and then
>> rebound. As such you are likely pushing things outside of the array
>> boundary. One solution might just be to at more ",1"s if you are only
>> going to be doing this kind of thing at boot up. The upper limit for
>> the array is 32 entries so as long as you only are setting this up once
>> you could probably get away with that.
>>
>> An alternative would be to modify the definition of the parameter in
>> ixgbe_param.c. If you look through the file you should fine several
>> likes like below:
>> struct ixgbe_option opt = {
>> .type = enable_option,
>> .name = "allow_unsupported_sfp",
>> .err = "defaulting to Disabled",
>> .def = OPTION_DISABLED
>> };
>>
>> If you modify the .def value to "OPTION_ENABLED", and then rebuild and
>> reinstall your driver you should be able have it install without any
>> issues.
>>
>> - Alex
>>
> Yeah, I've had roughly the same thought process since you mentioned the
> args array. My first idea was "maybe the driver can't fit all of my 1's"
> but I saw it was defined at 32. Then I decided to just patch the whole
> enable_unsupported_sfp option out
> https://gist.github.com/AlexForster/112fd822704caf804849 but I'm still
> failing.
Your changes are a bit over-kill and actually take things in the wrong
direction. By commenting out the whole allow_unsupported_sfp block you
are disabling it by default. Remember the module parameter allows it,
by removing it there is no way to enable the feature.
Like I mentioned in my previous email just take a look at replacing the
"OPTION_DISABLED" value with "OPTION_ENABLED" in the .def part of the
structure. After that you won't need to pass the module parameter as it
will always be enabled by default.
- Alex
next prev parent reply other threads:[~2015-10-15 18:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-15 15:43 Question about unsupported transceivers Alex Forster
2015-10-15 16:17 ` Alexander Duyck
2015-10-15 17:13 ` Alex Forster
2015-10-15 18:00 ` Alexander Duyck [this message]
2015-10-15 18:29 ` Alex Forster
2015-10-15 19:53 ` Alexander Duyck
2015-10-19 1:06 ` Alex Forster
2015-10-19 15:08 ` Alexander Duyck
-- strict thread matches above, loose matches on Subject: below --
2015-10-13 17:22 Alex Forster
2015-10-13 18:57 ` Alex Forster
2015-10-13 20:34 ` Alexander Duyck
2015-10-15 14:46 ` Alex Forster
2015-10-15 15:30 ` Alexander Duyck
2015-10-15 15:33 ` Alex Forster
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=561FE9A8.1010409@gmail.com \
--to=alexander.duyck@gmail.com \
--cc=alex@alexforster.com \
--cc=dev@dpdk.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.