2018-09-11 17:48:57

by Suman Anna

[permalink] [raw]
Subject: [PATCH] samples/rpmsg: Introduce a module parameter for message count

The current rpmsg_client_sample uses a fixed number of messages to
be sent to each instance. This is currently set at 100. Introduce
an optional module parameter 'count' so that the number of messages
to be exchanged can be made flexible.

Signed-off-by: Suman Anna <[email protected]>
---
samples/rpmsg/rpmsg_client_sample.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/samples/rpmsg/rpmsg_client_sample.c b/samples/rpmsg/rpmsg_client_sample.c
index f161dfd3e70a..9b6b27ea504f 100644
--- a/samples/rpmsg/rpmsg_client_sample.c
+++ b/samples/rpmsg/rpmsg_client_sample.c
@@ -22,7 +22,9 @@
#include <linux/rpmsg.h>

#define MSG "hello world!"
-#define MSG_LIMIT 100
+
+static int count = 100;
+module_param(count, int, 0644);

struct instance_data {
int rx_count;
@@ -41,7 +43,7 @@ static int rpmsg_sample_cb(struct rpmsg_device *rpdev, void *data, int len,
data, len, true);

/* samples should not live forever */
- if (idata->rx_count >= MSG_LIMIT) {
+ if (idata->rx_count >= count) {
dev_info(&rpdev->dev, "goodbye!\n");
return 0;
}
--
2.18.0



2018-09-11 18:18:05

by Trilok Soni

[permalink] [raw]
Subject: Re: [PATCH] samples/rpmsg: Introduce a module parameter for message count

Bjorn,

>
> #define MSG "hello world!"
> -#define MSG_LIMIT 100
> +
> +static int count = 100;
> +module_param(count, int, 0644);

I thought Greg KH doesn't want any new code to have module_param call,
right? Are we Ok here or I am missing something here.

--
---Trilok Soni
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project

2018-10-01 21:10:05

by Suman Anna

[permalink] [raw]
Subject: Re: [PATCH] samples/rpmsg: Introduce a module parameter for message count

Hi Trilok,

On 09/11/2018 01:17 PM, Trilok Soni wrote:
> Bjorn,
>
>>     #define MSG        "hello world!"
>> -#define MSG_LIMIT    100
>> +
>> +static int count = 100;
>> +module_param(count, int, 0644);
>
> I thought Greg KH doesn't want any new code to have module_param call,
> right? Are we Ok here or I am missing something here.

Can you point me to the thread where this was discussed/decided?

regards
Suman


2018-10-06 06:20:07

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] samples/rpmsg: Introduce a module parameter for message count

On Tue 11 Sep 10:46 PDT 2018, Suman Anna wrote:

> The current rpmsg_client_sample uses a fixed number of messages to
> be sent to each instance. This is currently set at 100. Introduce
> an optional module parameter 'count' so that the number of messages
> to be exchanged can be made flexible.
>

Rather than sending N messages as fast as possible to any sample channel
that comes up, how about making the sample create a debugfs entry that
we can write messages to from user space?

That would make it possible to improve the handling of multiple
remoteprocs and would allow for a variation in message lengths etc.

Regards,
Bjorn

> Signed-off-by: Suman Anna <[email protected]>
> ---
> samples/rpmsg/rpmsg_client_sample.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/samples/rpmsg/rpmsg_client_sample.c b/samples/rpmsg/rpmsg_client_sample.c
> index f161dfd3e70a..9b6b27ea504f 100644
> --- a/samples/rpmsg/rpmsg_client_sample.c
> +++ b/samples/rpmsg/rpmsg_client_sample.c
> @@ -22,7 +22,9 @@
> #include <linux/rpmsg.h>
>
> #define MSG "hello world!"
> -#define MSG_LIMIT 100
> +
> +static int count = 100;
> +module_param(count, int, 0644);
>
> struct instance_data {
> int rx_count;
> @@ -41,7 +43,7 @@ static int rpmsg_sample_cb(struct rpmsg_device *rpdev, void *data, int len,
> data, len, true);
>
> /* samples should not live forever */
> - if (idata->rx_count >= MSG_LIMIT) {
> + if (idata->rx_count >= count) {
> dev_info(&rpdev->dev, "goodbye!\n");
> return 0;
> }
> --
> 2.18.0
>

2018-10-06 16:30:05

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] samples/rpmsg: Introduce a module parameter for message count

On 05-10-18, 23:22, Bjorn Andersson wrote:
> On Tue 11 Sep 10:46 PDT 2018, Suman Anna wrote:
>
> > The current rpmsg_client_sample uses a fixed number of messages to
> > be sent to each instance. This is currently set at 100. Introduce
> > an optional module parameter 'count' so that the number of messages
> > to be exchanged can be made flexible.
> >
>
> Rather than sending N messages as fast as possible to any sample channel
> that comes up, how about making the sample create a debugfs entry that
> we can write messages to from user space?

Wouldn't it be better to make it sysfs rather than debugfs knob?

--
~Vinod

2018-10-08 16:34:21

by Suman Anna

[permalink] [raw]
Subject: Re: [PATCH] samples/rpmsg: Introduce a module parameter for message count

Hi Bjorn,

On 10/06/2018 01:22 AM, Bjorn Andersson wrote:
> On Tue 11 Sep 10:46 PDT 2018, Suman Anna wrote:
>
>> The current rpmsg_client_sample uses a fixed number of messages to
>> be sent to each instance. This is currently set at 100. Introduce
>> an optional module parameter 'count' so that the number of messages
>> to be exchanged can be made flexible.
>>
>
> Rather than sending N messages as fast as possible to any sample channel
> that comes up, how about making the sample create a debugfs entry that
> we can write messages to from user space?

This sample demonstrates a kernel-level rpmsg usage, and I would prefer
to maintain the current simplicity, and not add in any userspace
interaction. That perhaps can be done as a different sample. I use this
sample to serve as the basic test for checking the rpmsg transport
functionality with multiple remoteprocs and/or multiple instances per
remoteproc at the same time. The count parameter helps me with both
early Silicon development, as well as exercising increased message
exchanges so that the vring buffers are cycled.

>
> That would make it possible to improve the handling of multiple
> remoteprocs and would allow for a variation in message lengths etc.

FWIW, this already support multiple instances from the same remoteproc
or different remoteproc.

regards
Suman


>
> Regards,
> Bjorn
>
>> Signed-off-by: Suman Anna <[email protected]>
>> ---
>> samples/rpmsg/rpmsg_client_sample.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/samples/rpmsg/rpmsg_client_sample.c b/samples/rpmsg/rpmsg_client_sample.c
>> index f161dfd3e70a..9b6b27ea504f 100644
>> --- a/samples/rpmsg/rpmsg_client_sample.c
>> +++ b/samples/rpmsg/rpmsg_client_sample.c
>> @@ -22,7 +22,9 @@
>> #include <linux/rpmsg.h>
>>
>> #define MSG "hello world!"
>> -#define MSG_LIMIT 100
>> +
>> +static int count = 100;
>> +module_param(count, int, 0644);
>>
>> struct instance_data {
>> int rx_count;
>> @@ -41,7 +43,7 @@ static int rpmsg_sample_cb(struct rpmsg_device *rpdev, void *data, int len,
>> data, len, true);
>>
>> /* samples should not live forever */
>> - if (idata->rx_count >= MSG_LIMIT) {
>> + if (idata->rx_count >= count) {
>> dev_info(&rpdev->dev, "goodbye!\n");
>> return 0;
>> }
>> --
>> 2.18.0
>>