Just tell me in high level terms what your program loop does.

On Tue, Nov 24, 2015 at 2:52 PM, William Hermans <[email protected]> wrote:

> *William, *
>>
>> *Have you seen this.... when I enable the PRU with a device tree overlay,
> I get this if I type top:  (something to do with the interrupts taking up
> tons of CPU)*
>
>
> No I haven't, since I have not been looking. Perhaps the interrupts can be
> disabled ? I'll have to look into it, but I do not really have any code /
> binaries built to use both PRUs. What are you doing exactly ?
>
> On Tue, Nov 24, 2015 at 2:23 PM, Erik Stauber <[email protected]>
> wrote:
>
>> William,
>>
>> Have you seen this.... when I enable the PRU with a device tree overlay,
>> I get this if I type *top*:  (something to do with the interrupts taking
>> up tons of CPU)
>>
>>
>>
>>   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
>>   678 root      20   0   72872  21368   6372 S 11.2  4.2   0:03.56 node
>>   687 root      20   0   11324   2252   1552 R  6.2  0.4   0:00.43
>> systemd-udevd
>>   691 root      20   0   11324   1644    948 R  6.2  0.3   0:00.42
>> systemd-udevd
>>   692 root      20   0   11324   1644    948 R  6.2  0.3   0:00.41
>> systemd-udevd
>>   685 root      20   0   11324   2312   1612 R  5.9  0.5   0:00.43
>> systemd-udevd
>>   686 root      20   0   11324   2252   1552 R  5.9  0.4   0:00.43
>> systemd-udevd
>>   689 root      20   0   11324   2188   1488 R  5.9  0.4   0:00.43
>> systemd-udevd
>>   690 root      20   0   11324   2188   1488 R  5.9  0.4   0:00.42
>> systemd-udevd
>>   693 root      20   0   11324   1644    948 R  5.9  0.3   0:00.41
>> systemd-udevd
>>   680 root      20   0    8076   3524   3040 S  3.6  0.7   0:00.23
>> laserlux
>>     3 root      20   0       0      0      0 R  2.6  0.0   0:00.37
>> ksoftirqd/0
>>   103 root      20   0       0      0      0 S  0.3  0.0   0:00.04
>> usb-storage
>>   696 root      20   0    2980   1644   1288 R  0.3  0.3   0:00.06 top
>>     1 root      20   0   21836   3204   2120 S  0.0  0.6   0:06.05 systemd
>>     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00
>> kthreadd
>>     4 root      20   0       0      0      0 S  0.0  0.0   0:00.02
>> kworker/0:0
>>     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00
>> kworker/0:0H
>>     6 root      20   0       0      0      0 S  0.0  0.0   0:00.33
>> kworker/u2:0
>>     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00
>> watchdog/0
>>     8 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper
>>     9 root      20   0       0      0      0 S  0.0  0.0   0:00.00
>> kdevtmpfs
>>    10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
>>    11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswork
>>    12 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 perf
>>    13 root      20   0       0      0      0 S  0.0  0.0   0:00.04
>> kworker/0:1
>>    14 root      20   0       0      0      0 S  0.0  0.0   0:00.00
>> khungtaskd
>>    15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00
>> writeback
>>    16 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
>>    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto
>>    18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00
>> kintegrityd
>>    19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
>>    20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd
>>
>>
>> Then after a couple minutes, those processes disappear and this appears
>> in /var/log/syslog
>>
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [679]
>> /devices/platform/ocp/4a300000.pruss/uio/uio0 timeout; kill it
>> Nov 24 13:15:15 beaglebone rsyslogd-2007: action 'action 17' suspended,
>> next retry is Tue Nov 24 13:15:45 2015 [try http://www.rsyslog.com/e/2007
>> ]
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2030
>> '/devices/platform/ocp/4a300000.pruss/uio/uio0' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [680]
>> /devices/platform/ocp/4a300000.pruss/uio/uio1 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2036
>> '/devices/platform/ocp/4a300000.pruss/uio/uio1' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [681]
>> /devices/platform/ocp/4a300000.pruss/uio/uio2 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2037
>> '/devices/platform/ocp/4a300000.pruss/uio/uio2' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [683]
>> /devices/platform/ocp/4a300000.pruss/uio/uio3 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2038
>> '/devices/platform/ocp/4a300000.pruss/uio/uio3' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [684]
>> /devices/platform/ocp/4a300000.pruss/uio/uio4 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2039
>> '/devices/platform/ocp/4a300000.pruss/uio/uio4' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [685]
>> /devices/platform/ocp/4a300000.pruss/uio/uio5 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2040
>> '/devices/platform/ocp/4a300000.pruss/uio/uio5' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [686]
>> /devices/platform/ocp/4a300000.pruss/uio/uio6 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2041
>> '/devices/platform/ocp/4a300000.pruss/uio/uio6' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [687]
>> /devices/platform/ocp/4a300000.pruss/uio/uio7 timeout; kill it
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2042
>> '/devices/platform/ocp/4a300000.pruss/uio/uio7' killed
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [681] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [683] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [679] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [680] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [684] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [685] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [686] terminated by
>> signal 9 (Killed)
>> Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [687] terminated by
>> signal 9 (Killed)
>> Nov 24 13:16:10 beaglebone systemd-timesyncd[209]:
>> interval/delta/delay/jitter/drift 256s/-0.005s/0.075s/0.261s/-34ppm
>> Nov 24 13:16:10 beaglebone rsyslogd-2007: action 'action 17' suspended,
>> next retry is Tue Nov 24 13:16:40 2015 [try http://www.rsyslog.com/e/2007
>> ]
>> Nov 24 13:16:56 beaglebone rsyslogd-2007: action 'action 17' suspended,
>> next retry is Tue Nov 24 13:17:26 2015 [try http://www.rsyslog.com/e/2007
>> ]
>> Nov 24 13:17:01 beaglebone CRON[1650]: (root) CMD (   cd / && run-parts
>> --report /etc/cron.hourly)
>>
>>
>> What's odd is my program continues to operate normally, and is using both
>> PRU0 and PRU1 interrupts..
>>
>> Erik
>>
>>
>>
>>
>>
>> On Monday, November 23, 2015 at 12:03:04 PM UTC-8, William Hermans wrote:
>>>
>>> Micka,
>>>
>>> TI 4.x kernels will not work with "traditional" PRU stuff. TI kernels
>>> have remoteproc enabled. . . which takes over the PRU in a different way.
>>>
>>> On Mon, Nov 23, 2015 at 9:41 AM, Micka <[email protected]> wrote:
>>>
>>>> Hi, did you managed to make this kernel working with the PRU ? Because
>>>> I got that :
>>>>
>>>>
>>>> https://www.mail-archive.com/[email protected]/msg32826.html
>>>>
>>>>
>>>> Micka,
>>>>
>>>> Le lun. 23 nov. 2015 17:38, Erik Stauber <[email protected]> a écrit :
>>>>
>>>>> William,
>>>>>
>>>>> I installed the 4.1.13-bone-rt-r16 kernel, and the /dev/uioX entires
>>>>> showed up.  I guess I'll try using this one.  Thanks for the help!
>>>>>
>>>>> Erik
>>>>>
>>>>>
>>>>> On Saturday, November 21, 2015 at 9:44:14 PM UTC-8, William Hermans
>>>>> wrote:
>>>>>
>>>>>> By the way, I had to make my own device tree overlay for the PRU.
>>>>>> It's pretty simple. . . .
>>>>>>
>>>>>> /dts-v1/;
>>>>>> /plugin/;
>>>>>>
>>>>>> / {
>>>>>>     compatible = "ti,beaglebone", "ti,beaglebone-black";
>>>>>>
>>>>>>     /* identification */
>>>>>>     part-number = "pru_enable";
>>>>>>     version = "00A0";
>>>>>>
>>>>>>      fragment@0 {
>>>>>>              target = <&pruss>;
>>>>>>            __overlay__ {
>>>>>>                       status = "okay";
>>>>>>
>>>>>>                    };
>>>>>>         };
>>>>>>
>>>>>> };
>>>>>>
>>>>>> $ dtc -O dtb -o pru_enable-00A0.dtbo -b 0 -@ pru_enable-00A0.dts
>>>>>> $ sudo cp pru_enable-00A0.dtbo /lib/firmware/
>>>>>> $ sudo sh -c "echo 'pru_enable' >
>>>>>> /sys/devices/platform/bone_capemgr/slots"
>>>>>> $ dmesg | grep pru_enable
>>>>>> [  886.921624] bone_capemgr bone_capemgr: part_number 'pru_enable',
>>>>>> version 'N/A'
>>>>>> [  886.941686] bone_capemgr bone_capemgr: slot #6: 'Override Board
>>>>>> Name,00A0,Override Manuf,pru_enable'
>>>>>> [  886.981959] bone_capemgr bone_capemgr: slot #6: dtbo
>>>>>> 'pru_enable-00A0.dtbo' loaded; overlay id #0
>>>>>>
>>>>>> On Sat, Nov 21, 2015 at 10:36 PM, William Hermans <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>> bone-rt has real time enhancements. I do not know all the differences,
>>>>>>> but the kernel latency seems to be reduced.
>>>>>>>
>>>>>>> Anyway, you do not see what ?
>>>>>>>
>>>>>>
>>>>>>> On Sat, Nov 21, 2015 at 7:08 PM, Erik Stauber <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> hmmm, i don't see that on 4.1.13-bone16.   Maybe I need to use
>>>>>>>> 4.1.13-bone-rt-r16?  What is the difference between the bone and 
>>>>>>>> bone-rt?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Friday, November 20, 2015 at 2:26:38 PM UTC-8, William Hermans
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> The kernel I'm using by the way . . .
>>>>>>>>>
>>>>>>>>> $ uname -a
>>>>>>>>> Linux beaglebone 4.1.9-bone-rt-r16 #1 Thu Oct 1 06:19:41 UTC 2015
>>>>>>>>> armv7l GNU/Linux
>>>>>>>>>
>>>>>>>>> $ ls /dev/ |grep uio
>>>>>>>>> uio
>>>>>>>>> uio0
>>>>>>>>> uio1
>>>>>>>>> uio2
>>>>>>>>> uio3
>>>>>>>>> uio4
>>>>>>>>> uio5
>>>>>>>>> uio6
>>>>>>>>> uio7
>>>>>>>>>
>>>>>>>>> $ ./lsuio
>>>>>>>>> uio7: name=pruss_evt7, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio6: name=pruss_evt6, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio5: name=pruss_evt5, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio4: name=pruss_evt4, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio3: name=pruss_evt3, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio2: name=pruss_evt2, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio1: name=pruss_evt1, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>> uio0: name=pruss_evt0, version=1.0, events=0
>>>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Nov 20, 2015 at 2:59 PM, William Hermans <[email protected]
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> The TI kernels have remoteproc enabled in the kernel, which will
>>>>>>>>>> interfere with uio_pruss. You need to switch to a *bone* kernel.
>>>>>>>>>>
>>>>>>>>>> On Fri, Nov 20, 2015 at 9:59 AM, Erik Stauber <[email protected]
>>>>>>>>>> > wrote:
>>>>>>>>>>
>>>>>>>>>>> I'm trying to migrate to 4.1 from 3.8, and it seems as if the
>>>>>>>>>>> PRU is up and running on the latest 4.1 kernel.  However, a 
>>>>>>>>>>> difference is
>>>>>>>>>>> the I'm not getting the 8 uioX (x=0-8) entries in the /dev 
>>>>>>>>>>> directory, and
>>>>>>>>>>> therefore the prussdrv library errors out when it can't find those 
>>>>>>>>>>> files.
>>>>>>>>>>>
>>>>>>>>>>> The prussdrv is looking for this:
>>>>>>>>>>> sprintf(name, "/dev/uio%d", host_interrupt);
>>>>>>>>>>>
>>>>>>>>>>> The dmesg output on 4.1.13-ti-r33 reports that it is skipping
>>>>>>>>>>> intr mapping...
>>>>>>>>>>>
>>>>>>>>>>> *[   20.830764] pru-rproc 4a334000.pru0: version 0
>>>>>>>>>>> event_chnl_map_size 1 event_chnl_map 0000039c*
>>>>>>>>>>> *[   20.830799] pru-rproc 4a334000.pru0: sysevt-to-ch[60] -> 0*
>>>>>>>>>>> *[   20.830812] pru-rproc 4a334000.pru0: chnl-to-host[0] -> 0*
>>>>>>>>>>> *[   20.830823] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 1*
>>>>>>>>>>> *[   20.830833] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 2*
>>>>>>>>>>> *[   20.830844] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 3*
>>>>>>>>>>> *[   20.830854] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 4*
>>>>>>>>>>> *[   20.830864] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 5*
>>>>>>>>>>> *[   20.830875] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 6*
>>>>>>>>>>> *[   20.830885] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 7*
>>>>>>>>>>> *[   20.830896] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 8*
>>>>>>>>>>> *[   20.830906] pru-rproc 4a334000.pru0: skip intr mapping for
>>>>>>>>>>> chnl 9*
>>>>>>>>>>>
>>>>>>>>>>> Does anyone know how to not skip that?  Or a way for me to map
>>>>>>>>>>> them manually?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Erik
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> 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].
>>>>>>>>>>> For more options, visit 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].
>>>>>>>> For more options, visit 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].
>>>>> For more options, visit 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].
>>>> For more options, visit 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].
>> For more options, visit 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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to