On 12/20/2017 09:43 PM, David Miller wrote:
> From: Jiri Pirko <j...@resnulli.us>
> Date: Wed, 20 Dec 2017 12:58:13 +0100
> 
>> From: Arkadi Sharshevsky <arka...@mellanox.com>
>>
>> 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 <arka...@mellanox.com>
>> Signed-off-by: Jiri Pirko <j...@mellanox.com>
> 
> In what units are these sizes?  If it depends upon the resource, it would
> be great to have a way to introspect the units given a resource.
> 

This is problematic. Currently the units are actually double words
(single entry is 64 bit) because this resource is a actually a memory.
So my first thought was adding an enum in UAPI of resource_units

enum resource_units {
        DEVLINK_RESOURCE_UNITS_WORD,
        DEVLINK_RESOURCE_UNITS_DOUBLE_WORD,
        DEVLINK_RESOURCE_UNITS_ITEM, /* this is in order to define some
                                        driver specific stuff*/
        ...
};

But the 'item' is too vague, because for example, we will have the
RIF bank as resource. What unit will it have? rifs? items?

Any inputs on this?


>> +    struct devlink_resource_ops *resource_ops;
> 
> Const?
> 
>> +static inline int
>> +devlink_resource_register(struct devlink *devlink,
>> +                      const char *resource_name,
>> +                      bool top_hierarchy,
>> +                      u64 resource_size,
>> +                      u64 resource_id,
>> +                      u64 parent_resource_id,
>> +                      struct devlink_resource_ops *resource_ops)
> 
> Const for resource_ops?
> 
>> +int devlink_resource_register(struct devlink *devlink,
>> +                          const char *resource_name,
>> +                          bool top_hierarchy,
>> +                          u64 resource_size,
>> +                          u64 resource_id,
>> +                          u64 parent_resource_id,
>> +                          struct devlink_resource_ops *resource_ops)
> 
> Likewise.
> 

Reply via email to