From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: Re: [patch net-next RFC v2 02/11] devlink: Add support for resource abstraction Date: Tue, 14 Nov 2017 23:59:54 -0800 Message-ID: <20171114235954.3f5d15a8@cakuba> References: <20171114161852.6633-1-jiri@resnulli.us> <20171114161852.6633-3-jiri@resnulli.us> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, davem@davemloft.net, mlxsw@mellanox.com, andrew@lunn.ch, vivien.didelot@savoirfairelinux.com, f.fainelli@gmail.com, michael.chan@broadcom.com, ganeshgr@chelsio.com, saeedm@mellanox.com, matanb@mellanox.com, leonro@mellanox.com, idosch@mellanox.com, ast@kernel.org, daniel@iogearbox.net, simon.horman@netronome.com, pieter.jansenvanvuuren@netronome.com, john.hurley@netronome.com, alexander.h.duyck@intel.com, linville@tuxdriver.com, gospo@broadcom.com, steven.lin1@broadcom.com, yuvalm@mellanox.com, ogerlitz@mellanox.com, dsa@cumulusnetworks.com, roopa@cumulusnetworks.com To: Jiri Pirko Return-path: Received: from mail-pg0-f68.google.com ([74.125.83.68]:49938 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752704AbdKOIAC (ORCPT ); Wed, 15 Nov 2017 03:00:02 -0500 Received: by mail-pg0-f68.google.com with SMTP id 70so4940939pgf.6 for ; Wed, 15 Nov 2017 00:00:02 -0800 (PST) In-Reply-To: <20171114161852.6633-3-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, 14 Nov 2017 17:18:43 +0100, Jiri Pirko wrote: > From: Arkadi Sharshevsky > > Add support for hardware resource abstraction over devlink. Each resource > is identified via id, furthermore it contains information regarding its > size and its related sub resources. Each resource can also provide its > current occupancy. > > In some cases the sizes of some resources can be changed, yet for those > changes to take place a hot driver reload may be needed. The reload > capability will be introduced in the next patch. > > Signed-off-by: Arkadi Sharshevsky > Signed-off-by: Jiri Pirko > --- > include/net/devlink.h | 80 +++++++++++ > include/uapi/linux/devlink.h | 10 ++ > net/core/devlink.c | 330 +++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 420 insertions(+) > > diff --git a/include/net/devlink.h b/include/net/devlink.h > index 4d2c6fc..960e80a 100644 > --- a/include/net/devlink.h > +++ b/include/net/devlink.h > @@ -224,6 +225,45 @@ struct devlink_dpipe_headers { > unsigned int headers_count; > }; > > +/** > + * struct devlink_resource_ops - resource ops > + * @occ_get - get the occupied size > + * @size_validate - validate the size of the resource before update, reload nit: @member: is more common and used throughout this file, rather than @member - > + * is needed for changes to take place > + */ > +struct devlink_resource_ops { > + u64 (*occ_get)(struct devlink *devlink); > + int (*size_validate)(struct devlink *devlink, u64 size, > + struct list_head *resource_list, > + struct netlink_ext_ack *extack); > +};