All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacob Keller <jacob.e.keller@intel.com>
To: Jiri Pirko <jiri@resnulli.us>
Cc: <netdev@vger.kernel.org>, Jiri Pirko <jiri@nvidia.com>,
	Jakub Kicinski <kuba@kernel.org>
Subject: Re: [PATCH net-next v2 6/9] devlink: support directly reading from region memory
Date: Mon, 28 Nov 2022 10:34:52 -0800	[thread overview]
Message-ID: <bd3887c2-1d91-3af1-f1cc-403b9ef849b7@intel.com> (raw)
In-Reply-To: <Y38z418/Uv8ExF1V@nanopsycho>



On 11/24/2022 1:05 AM, Jiri Pirko wrote:
> Wed, Nov 23, 2022 at 09:38:31PM CET, jacob.e.keller@intel.com wrote:
> 
> Hmm. Being pedantic here, it changes userspace expectations:
> current - message without snapshotid is errored out
> new - message without snapshotid is happily processed
> 

Yea. I guess I'm thinking more from an interactive application 
standpoint this wouldn't be a problem but from a scripted setup it might 
do something weird.

> I can imagine some obscure userspace app depending on this behaviour,
> in theory.

Hmm.

> 
> Safe would be to add new NLA_FLAG attr DEVLINK_ATTR_REGION_DIRECT or
> something that would indicate userspace is interested in direct read.
> Also, the userspace would know right away it this new functionality
> is supported or not by the kernel.
> 

The advantage of being able to see that such a feature exists is good.

I can rework this to add an attribute.

> 
> 
>> +		if (!region->ops->read) {
>> +			NL_SET_ERR_MSG(cb->extack, "requested region does not support direct read");
>> +			err = -EOPNOTSUPP;
>> +			goto out_unlock;
>> +		}
>> +		if (port)
>> +			region_cb = &devlink_region_port_direct_fill;
>> +		else
>> +			region_cb = &devlink_region_direct_fill;
>> +		region_cb_priv = region;
>> +	} else {
>> +		struct devlink_snapshot *snapshot;
>> +		u32 snapshot_id;
>> +
>> +		snapshot_id = nla_get_u32(snapshot_attr);
>> +		snapshot = devlink_region_snapshot_get_by_id(region, snapshot_id);
>> +		if (!snapshot) {
>> +			NL_SET_ERR_MSG_ATTR(cb->extack, snapshot_attr, "requested snapshot does not exist");
>> +			err = -EINVAL;
>> +			goto out_unlock;
>> +		}
>> +		region_cb = &devlink_region_snapshot_fill;
>> +		region_cb_priv = snapshot;
>> 	}
>>
>> 	if (attrs[DEVLINK_ATTR_REGION_CHUNK_ADDR] &&
>> @@ -6633,9 +6665,9 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
>> 		goto nla_put_failure;
>> 	}
>>
>> -	err = devlink_nl_region_read_fill(skb, &devlink_region_snapshot_fill,
>> -					  snapshot, start_offset, end_offset,
>> -					  &ret_offset, cb->extack);
>> +	err = devlink_nl_region_read_fill(skb, region_cb, region_cb_priv,
>> +					  start_offset, end_offset, &ret_offset,
>> +					  cb->extack);
>>
>> 	if (err && err != -EMSGSIZE)
>> 		goto nla_put_failure;
>> -- 
>> 2.38.1.420.g319605f8f00e
>>

  reply	other threads:[~2022-11-28 18:36 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-23 20:38 [PATCH net-next v2 0/9] support direct read from region Jacob Keller
2022-11-23 20:38 ` [PATCH net-next v2 1/9] devlink: use min_t to calculate data_size Jacob Keller
2022-11-24  8:40   ` Jiri Pirko
2022-11-24 21:53   ` David Laight
2022-11-28 18:31     ` Jacob Keller
2022-11-29  8:54       ` David Laight
2022-11-23 20:38 ` [PATCH net-next v2 2/9] devlink: report extended error message in region_read_dumpit Jacob Keller
2022-11-24  8:42   ` Jiri Pirko
2022-11-24  8:46   ` Jiri Pirko
2022-11-28 18:16     ` Keller, Jacob E
2022-11-23 20:38 ` [PATCH net-next v2 3/9] devlink: find snapshot in devlink_nl_cmd_region_read_dumpit Jacob Keller
2022-11-24  8:47   ` Jiri Pirko
2022-11-23 20:38 ` [PATCH net-next v2 4/9] devlink: remove unnecessary parameter from chunk_fill function Jacob Keller
2022-11-24  8:49   ` Jiri Pirko
2022-11-23 20:38 ` [PATCH net-next v2 5/9] devlink: refactor region_read_snapshot_fill to use a callback function Jacob Keller
2022-11-24  9:12   ` Jiri Pirko
2022-11-28 18:27     ` Keller, Jacob E
2022-11-28 19:00       ` Jakub Kicinski
2022-11-28 19:22         ` Keller, Jacob E
2022-11-23 20:38 ` [PATCH net-next v2 6/9] devlink: support directly reading from region memory Jacob Keller
2022-11-24  9:05   ` Jiri Pirko
2022-11-28 18:34     ` Jacob Keller [this message]
2022-11-23 20:38 ` [PATCH net-next v2 7/9] ice: use same function to snapshot both NVM and Shadow RAM Jacob Keller
2022-11-23 20:38 ` [PATCH net-next v2 8/9] ice: document 'shadow-ram' devlink region Jacob Keller
2022-11-23 20:38 ` [PATCH net-next v2 9/9] ice: implement direct read for NVM and Shadow RAM regions Jacob Keller
2022-11-24  4:17 ` [PATCH net-next v2 0/9] support direct read from region Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bd3887c2-1d91-3af1-f1cc-403b9ef849b7@intel.com \
    --to=jacob.e.keller@intel.com \
    --cc=jiri@nvidia.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.