From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_SBL,URIBL_SBL_A,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74C5EC5DF60 for ; Fri, 8 Nov 2019 16:22:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4A18421882 for ; Fri, 8 Nov 2019 16:22:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="b1qFA61T" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727168AbfKHQWv (ORCPT ); Fri, 8 Nov 2019 11:22:51 -0500 Received: from mail-wm1-f67.google.com ([209.85.128.67]:52131 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726445AbfKHQWv (ORCPT ); Fri, 8 Nov 2019 11:22:51 -0500 Received: by mail-wm1-f67.google.com with SMTP id q70so6783044wme.1 for ; Fri, 08 Nov 2019 08:22:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=1hEKhdVfyO4yewnCI8/1KBs9vIJ4ofje9lXGykRyyCQ=; b=b1qFA61Tma0gRUWaFZBFRrOCcniNjzRFqKPQkAbRS3u+qT7PYE9m8/7fMRuvG7bRkK NigudxLRzuodvlkqXlZURobWU4FFkHzMUax94X8fnGrSR3qjrw1bTLBYQUCg7AK8hz/b 1c7pjzr+9/9Xpkp1IVQTCopyuf0OKkdM3vNRcL9oRe0C3nxWZWgLvwxxuqR4n+10I5Iz dHM43QKKbMRtBYYT+ViQuQ1/TgyG1YEBH5mQYrIAoIVaAaoY8xcgU7pW8tCPN40FUNh7 q6K14XCHPaeeCKHOXfmFuB4jHyI3FlxLSble/sPhXSnJJGiFJQh3yMR5BsLde2Ww/btE ApHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=1hEKhdVfyO4yewnCI8/1KBs9vIJ4ofje9lXGykRyyCQ=; b=GM5PWmdJAGCqJ0drgM/CMVYdu22YEWQN3WOIn9r7ervgTNCiig0DXWuvF9kL1a3HXK YVmLkw6Q1R7XMzL2BjDl3BaX+mwlRTuN4JO3kmMDHHO7CILLu9fPyA3zVNUt2bj5L4kf vBlqGDn8a2UhdteowDAc55eurFadHhsqqM8oVQgsJIsW+UXFK9/5aL5t4kgam47c8AYQ kdi9WPxIjMPkWNsYk+I3Yii96WT5QqnAMmqoBdv7HsgzGdcPzcCfSxqDSTAwZAv8v3kY 8jZR7uPx6YtPeCnNnsmraCq6FytQ5sp232+/MsXWksZsQiqtwNLC8RrTd7W+cHORNMYd a5rw== X-Gm-Message-State: APjAAAXhpyknvdLP70fk6bsZgUHcuUtg1uY/iaS4fkiW1A+E3b4yTNFQ 9YKRMOXZU9T4pP74ixaKEEH3WQ== X-Google-Smtp-Source: APXvYqyEO3yYImFDMX6b+ebGJ70btDiELBQr7l+ul6qPtiqg5rSRR1thE5ikNvJniBIAXxVobGvrGw== X-Received: by 2002:a1c:6309:: with SMTP id x9mr8521783wmb.108.1573230167714; Fri, 08 Nov 2019 08:22:47 -0800 (PST) Received: from localhost (ip-94-113-220-175.net.upcbroadband.cz. [94.113.220.175]) by smtp.gmail.com with ESMTPSA id w132sm9995010wma.6.2019.11.08.08.22.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Nov 2019 08:22:47 -0800 (PST) Date: Fri, 8 Nov 2019 17:22:46 +0100 From: Jiri Pirko To: Parav Pandit Cc: "alex.williamson@redhat.com" , "davem@davemloft.net" , "kvm@vger.kernel.org" , "netdev@vger.kernel.org" , Saeed Mahameed , "kwankhede@nvidia.com" , "leon@kernel.org" , "cohuck@redhat.com" , Jiri Pirko , "linux-rdma@vger.kernel.org" , Vu Pham Subject: Re: [PATCH net-next 06/19] net/mlx5: Add support for mediated devices in switchdev mode Message-ID: <20191108162246.GN6990@nanopsycho> References: <20191107160448.20962-1-parav@mellanox.com> <20191107160834.21087-1-parav@mellanox.com> <20191107160834.21087-6-parav@mellanox.com> <20191108103249.GE6990@nanopsycho> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.1 (2019-06-15) Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Fri, Nov 08, 2019 at 05:03:13PM CET, parav@mellanox.com wrote: > > >> -----Original Message----- >> From: Jiri Pirko >> Sent: Friday, November 8, 2019 4:33 AM >> To: Parav Pandit >> Cc: alex.williamson@redhat.com; davem@davemloft.net; >> kvm@vger.kernel.org; netdev@vger.kernel.org; Saeed Mahameed >> ; kwankhede@nvidia.com; leon@kernel.org; >> cohuck@redhat.com; Jiri Pirko ; linux- >> rdma@vger.kernel.org; Vu Pham >> Subject: Re: [PATCH net-next 06/19] net/mlx5: Add support for mediated >> devices in switchdev mode >> >> Thu, Nov 07, 2019 at 05:08:21PM CET, parav@mellanox.com wrote: >> >From: Vu Pham >> >> [...] >> >> >> >+static ssize_t >> >+max_mdevs_show(struct kobject *kobj, struct device *dev, char *buf) { >> >+ struct pci_dev *pdev = to_pci_dev(dev); >> >+ struct mlx5_core_dev *coredev; >> >+ struct mlx5_mdev_table *table; >> >+ u16 max_sfs; >> >+ >> >+ coredev = pci_get_drvdata(pdev); >> >+ table = coredev->priv.eswitch->mdev_table; >> >+ max_sfs = mlx5_core_max_sfs(coredev, &table->sf_table); >> >+ >> >+ return sprintf(buf, "%d\n", max_sfs); } static >> >+MDEV_TYPE_ATTR_RO(max_mdevs); >> >+ >> >+static ssize_t >> >+available_instances_show(struct kobject *kobj, struct device *dev, >> >+char *buf) { >> >+ struct pci_dev *pdev = to_pci_dev(dev); >> >+ struct mlx5_core_dev *coredev; >> >+ struct mlx5_mdev_table *table; >> >+ u16 free_sfs; >> >+ >> >+ coredev = pci_get_drvdata(pdev); >> >+ table = coredev->priv.eswitch->mdev_table; >> >+ free_sfs = mlx5_get_free_sfs(coredev, &table->sf_table); >> >+ return sprintf(buf, "%d\n", free_sfs); } static >> >+MDEV_TYPE_ATTR_RO(available_instances); >> >> These 2 arbitrary sysfs files are showing resource size/usage for the whole >> eswitch/asic. That is a job for "devlink resource". Please implement that. >> >Jiri, >This series is already too long. I will implement it as follow on. It is already in plan. >However, available_instances file is needed regardless of devlink resource, as its read by the userspace for all mdev drivers. If that is the case, why isn't that implemented in mdev code rather than individual drivers? I don't understand. > >> >> >+ >> >+static struct attribute *mdev_dev_attrs[] = { >> >+ &mdev_type_attr_max_mdevs.attr, >> >+ &mdev_type_attr_available_instances.attr, >> >+ NULL, >> >+}; >> >+ >> >+static struct attribute_group mdev_mgmt_group = { >> >+ .name = "local", >> >+ .attrs = mdev_dev_attrs, >> >+}; >> >+ >> >+static struct attribute_group *mlx5_meddev_groups[] = { >> >+ &mdev_mgmt_group, >> >+ NULL, >> >+}; >> >> [...]