Hi Jason,

I have been part of the discussion on this issue spanning several threads and I 
have yet to hear anyone offer any concrete suggestions on how to make 
RPMSG/RemoteProc better, so here are my thoughts on the steep learning curve 
required to use RPMSG/RemoteProc. I think the structure of the framework 
doesn’t need to change and I would not like to see registers turned over to 
user space. I think we just need to simplify the learning curve. 

I started by trying to read all the docs and this was my first issue. The docs 
are all over the place, presentations are also spread all over the place. To 
start, I would like to see a more structured set of docs that cover everything, 
from understanding the hardware, the interfaces between PRU and ARM, and how 
everything fits together (RemoteProc, Virtio, RPMSG, etc).

I ported RPMSG/RemoteProc from the V3.8 kernel to V4.1 kernel for both BBB and 
BeagleBoard-x15 and during that process, I learned how the whole echo system 
worked. I didn’t learn this from the docs. Later some PRU presentations did a 
better job of explaining the structure, but the use of TI's very technical 
acronyms made the docs difficult to understand. I mean, what does virtio, 
mailbox, vrings, etc mean. I had to read the code to understand the concepts 
and this should not be necessary. 

The examples tended to be overly simplistic and don’t necessarily show the 
capabilities of the framework. Perhaps we should call for a list of examples 
developers would like to see and we can work on providing a solution that 
developers can use as a template. 

I would be interested in hearing what other think about my proposal. 

Regards,
John




> On Jun 16, 2016, at 3:25 AM, Jason Kridner <[email protected]> 
> wrote:
> 
> Thanks John. Remoteproc wasn't derived in a vacuum. Every approach provides 
> trade-offs. The constant uninformed assertion that everything is faster if 
> handled by userspace reflects on the struggles we've had to communicate the 
> value of working in the kernel process. 
> 
> I'd like to see a better way of maintaining both, that is to turn the 
> registers back over to userspace, disabling the kernel driver other than UIO. 
> I need to work on articulating that desire. 
> 
> As to the claim that remoteproc is slower---given that the kernel owns the 
> interrupts, I don't see how userspace can service them faster. Examples like 
> BeagleLogic show that remoteproc can be quite fast. The high speed 
> communication between the PRUs and the rest of the system, coupled with their 
> high-speed interface to the external world, are what make them so valuable. 
> Defining some common effective ways of communicating using kernel drivers 
> would seem to make it much simpler for people to develop code quickly. 
> 
> Anyway, we should spend some time with this repo making sure both driver 
> mechanisms are supported and their values articulated. Simply ignoring the 
> remoteproc interface supported in the mainline kernel doesn't make sense to 
> me. 
> On Thu, Jun 16, 2016 at 2:20 AM John Syne <[email protected] 
> <mailto:[email protected]>> wrote:
> One other thing, if you don’t like some features of RPMSG/REMOTEPROC, then 
> why not provide input to the developers with any suggestions you think will 
> make things better? I have spoken to Jason Reeder and Suman Anna several 
> times and they have been very responsive to my input. 
> 
> Regards,
> John
> 
> 
> 
> 
> 
>> On Jun 15, 2016, at 8:53 PM, TJF <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
> 
>> 
>> 
>> Am Mittwoch, 15. Juni 2016 23:47:11 UTC+2 schrieb Jason Kridner:
>> How is it nonsense?
>> 
>> There's no realistic concept up to now. Significant changes every now and 
>> then, like the one documented here.
>> 
>> Some developers may see some advantages anytime in the future, at least if 
>> they use the matching compiler. But currently, from my (and the users) point 
>> of view, remoteproc has less features, is slower, and takes more kernel 
>> memory than the prussdrv solution. In short: experimental, not ready for 
>> productive code. Regretfully I think about every minute I spent in learning 
>> and testing yet. 
>> 
>> -- 
>> For more options, visit http://beagleboard.org/discuss 
>> <http://beagleboard.org/discuss>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] 
>> <mailto:[email protected]>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/beagleboard/bc2d2003-6593-4759-99ca-2b7a95b8d33f%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/beagleboard/bc2d2003-6593-4759-99ca-2b7a95b8d33f%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> For more options, visit http://beagleboard.org/discuss 
> <http://beagleboard.org/discuss>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/F78DF15C-A7CF-4AC5-82DE-604CE7F74E75%40gmail.com
>  
> <https://groups.google.com/d/msgid/beagleboard/F78DF15C-A7CF-4AC5-82DE-604CE7F74E75%40gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> 
> -- 
> For more options, visit http://beagleboard.org/discuss 
> <http://beagleboard.org/discuss>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/CA%2BT6QPmqZkBh5%3DNxHU75UZLtWWL83JOVoBmdi4P5cNCLnwsjGA%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/beagleboard/CA%2BT6QPmqZkBh5%3DNxHU75UZLtWWL83JOVoBmdi4P5cNCLnwsjGA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/3007D094-E7EA-42C7-BDA1-73BA5458524B%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to