From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by dpdk.org (Postfix) with ESMTP id 4F17D91D0 for ; Thu, 15 Oct 2015 20:00:10 +0200 (CEST) Received: by padcn9 with SMTP id cn9so12498828pad.3 for ; Thu, 15 Oct 2015 11:00:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=z9AdYulivdvV7QoM1EUbT2gQtliag6tTXwXZbu1sevU=; b=jXLRJbntZH1ryWKqQGBcnlTh2vr0ksxPc+GoECl22i/AuGKCglTi/oM0ceRD6qS3CS zBAUbe7PLEzWPFW/xDHZUbnLcxgeNWlr7A6kB3LJNUQfjC8XBBXuPje6joXHbAdpG8eM 6nFhXY+VpR/ynOIltaOF7TELul2aKGMcUUWebW2fNE8HguOZ15YY/1WlZhwc4CM2u+IO X1UTZD7+nM3PUo6s4KrggIATQLvcUrzil6n4wB2uDsdXoIPj0g91pq116WeoGVwyB86P fyT9ASkg0akn4qCc2rW99y4H/gDjmxtHwfalNInsTH0mxy5puLWpgq+ZjkSChL2/cHUs g3eA== X-Received: by 10.66.186.141 with SMTP id fk13mr11235985pac.7.1444932009521; Thu, 15 Oct 2015 11:00:09 -0700 (PDT) Received: from [192.168.1.188] (static-50-53-21-5.bvtn.or.frontiernet.net. [50.53.21.5]) by smtp.googlemail.com with ESMTPSA id gi4sm16619732pbc.4.2015.10.15.11.00.08 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 15 Oct 2015 11:00:09 -0700 (PDT) To: Alex Forster References: <561FD17E.6070908@gmail.com> From: Alexander Duyck Message-ID: <561FE9A8.1010409@gmail.com> Date: Thu, 15 Oct 2015 11:00:08 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Question about unsupported transceivers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Oct 2015 18:00:10 -0000 On 10/15/2015 10:13 AM, Alex Forster wrote: > On 10/15/15, 12:17 PM, "Alexander Duyck" wrote: > > >> On 10/15/2015 08:43 AM, Alex Forster wrote: >>> On 10/15/15, 11:30 AM, "Alexander Duyck" >>> wrote: >>> >>>> On 10/15/2015 07:46 AM, Alex Forster wrote: >>>>> On 10/13/15, 4:34 PM, "Alexander Duyck" >>>>> 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 " 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