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 8F1728DB1 for ; Fri, 2 Oct 2015 03:39:12 +0200 (CEST) Received: by padhy16 with SMTP id hy16so91368284pad.1 for ; Thu, 01 Oct 2015 18:39:12 -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=uscTHJpEpryruP6LXSJbj7iv5wFDWTU7zvSYt1gaeeI=; b=fuiJj6qPMCmKmq1bOLaRmKSmtyfkqt5iGNhKwMqiprjFRTAq9cqPF+0mTssfSplpwf b4BR+gcvy84cTNPPg+TeQLLwn9fqDg0INxPHhbKdRTCfHg0wCDDUrRiVxVJ47FVrNORc f6TmULrSwFHKXjapjdgs8jynG0ecoYiW3rT3xrYifLB3TFbJxcmtufLCMUI1grrM1vNr U7iwqLWrVn80F+gb3KyRfamyC089l7y9EiDWZqRvAsgKe4gMd0mzAcV/fhFYQfnkWPOt eCE4mWmIzd5NFvsFSeDhRI9a1+cnxkPNJwzuxvUuwukdNzZXTzLoN+XpIA7fDh1qUjTV HBcA== X-Received: by 10.68.181.34 with SMTP id dt2mr16077416pbc.7.1443749951978; Thu, 01 Oct 2015 18:39:11 -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 jd9sm9114463pbd.53.2015.10.01.18.39.11 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Oct 2015 18:39:11 -0700 (PDT) To: Stephen Hemminger References: <1443652138-31782-1-git-send-email-stephen@networkplumber.org> <560D11F6.2080609@scylladb.com> <20151001075731.2f079237@urahara> <560D8E14.5030500@gmail.com> <20151001150036.7a20b228@urahara> <560DBBAA.3050906@gmail.com> <20151001163918.1bc98774@urahara> <560DC51B.7030507@gmail.com> <20151001170403.1ba4dad3@urahara> From: Alexander Duyck Message-ID: <560DE03E.3080300@gmail.com> Date: Thu, 1 Oct 2015 18:39:10 -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: <20151001170403.1ba4dad3@urahara> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, Avi Kivity , hjk@hansjkoch.de, gregkh@linux-foundation.org, linux-kernel@vger.kernel.org Subject: Re: [dpdk-dev] [PATCH 0/2] uio_msi: device driver 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: Fri, 02 Oct 2015 01:39:12 -0000 On 10/01/2015 05:04 PM, Stephen Hemminger wrote: > On Thu, 1 Oct 2015 16:43:23 -0700 > Alexander Duyck wrote: > >> Yes, but in the case of something like a VF it is going to just make a >> bigger mess of things since INTx doesn't work. So what would you expect >> your driver to do in that case? Also we have to keep in mind that the >> MSI-X failure case is very unlikely. >> >> One other thing that just occurred to me is that you may want to try >> using the range allocation call instead of a hard set number of >> interrupts. Then if you start running short on vectors you don't hard >> fail and instead just allocate what you can. > I tried that but the bookkeeping gets messy since there is no good > way to communicate that back to userspace and have it adapt. Actually I kind of just realized that uio_msi_open is kind of messed up. So if the MSI-X allocation fails due to no resources it will return a positive value indicating the number of vectors that could be allocated, a negative value if one of the input values is invalid, or 0. I'm not sure if returning a positive value on failure is an issue or not. I know the open call is supposed to return a negative value or the file descriptor if not negative. I don't know if the return value might be interpreted as a file descriptor or not. Also if MSI-X is supported by the hardware, but disabled for some reason by the kernel ("pci=nomsi") then this driver is rendered inoperable since it will never give you anything but -EINVAL from the open call. I really think you should probably look at taking care of enabling MSI-X and maybe MSI as a fall-back in probe. At least then you can post a message about how many vectors are enabled and what type. Then if you cannot enable any interrupts due to MSI being disabled you can simply fail at probe time and let then load a different driver. - Alex