[Rock-dev] updateHook hanging (blocked?) when started via syskit

Alexander Duda Alexander.Duda at dfki.de
Mon Dec 16 20:27:08 CET 2013


On 12/16/2013 07:28 PM, Christian Rauch wrote:
> I set the priority by:
>
> task("seekur_drv","aria::Task").priority(99)
>
> which does not affect the result (still delays).
>
> The aria::Task is periodic (100ms) and the camera_ids::Task is 
> triggered in the updateHook after a new image arrives.
As far as I remember if you miss to process all new data in the update 
hook your update hook is not triggered again and you have to trigger 
yourself.

A good way of doing it would be to process data until a limit is reached 
and when trigger yourself to not block the hook for too long.

while(_port.read(m_data) == RTT::NewData)
{
...
     if(time > threshold)
     {
         ((RTT::TaskContext*)p)->getActivity()->trigger();
         break;
     }
}

Alex

>
>
> As the camera Logger is writing with approx. 10 MB/s (and CPU load is 
> below 20%) which is far away from the HDD limit (~60MB/s) and this 
> whole issue does not occur when running the cameras with logger in 
> syskit and the aria::Task outside syskit, I assume that this is not a 
> hardware related issue.
>
> As this problem for now seems to occur only when running both tasks 
> (aria, camera_ids) within the bundle; what are the options to change 
> the scheduling by syskit? Does syskit change the behaviour of how 
> processes are scheduled by the OS in any way?
>
> Regards,
> Christian
>
>
> Am 16.12.2013 16:21, schrieb Matthias Goldhoorn:
>> Several things could happen:
>>
>> The logger consumes too much time to get out the images, caused by a
>> slow hdd.
>> Try to increase the priority level of the pioneer task within your
>> deployment to make this more urgent from the point of scheduling.
>>
>> Matthias
>>
>> P.S. i assume you task is periodic
>>
>> On 16.12.2013 16:17, Christian Rauch wrote:
>>> Hi,
>>>
>>> I am using the aria task within syskit as a device which is supposed to
>>> be called every 100ms. The aria task uses an additional thread
>>> provided by the aria driver to communicate with the robot.
>>>
>>> If I run that task from the syskit shell without additional sensors the
>>> updateHook gets called as expected. If I add one or more cameras
>>> (camera_ids) with loggers it happens that the updateHook gets stuck
>>> for some time:
>>>
>>> {{{
>>> [DEBUG] - aria::updateHook at: 1386784751.580.629
>>> [DEBUG] - aria::updateHook at: 1386784751.680.668
>>> [DEBUG] - aria::updateHook at: 1386784751.780.542
>>> ArRobotPacketReceiver::receivePacket: bad packet, bad checksum
>>> Warning: Task 'Packet Handler' took 1213 ms to run (longer than the 250
>>> warning time)
>>> Warning: ArRobot sync tasks too long at 1213 ms, (100 ms normal 250 ms
>>> warning)
>>> [DEBUG] - aria::updateHook at: 1386784753.673.374
>>> [DEBUG] - aria::updateHook at: 1386784753.677.372
>>> [DEBUG] - aria::updateHook at: 1386784753.681.379
>>> [DEBUG] - aria::updateHook at: 1386784753.685.211
>>> [DEBUG] - aria::updateHook at: 1386784753.689.226
>>> [DEBUG] - aria::updateHook at: 1386784753.697.023
>>> [DEBUG] - aria::updateHook at: 1386784753.701.405
>>> [DEBUG] - aria::updateHook at: 1386784753.705.386
>>> [DEBUG] - aria::updateHook at: 1386784753.709.383
>>> [DEBUG] - aria::updateHook at: 1386784753.713.216
>>> [DEBUG] - aria::updateHook at: 1386784753.717.292
>>> [DEBUG] - aria::updateHook at: 1386784753.721.253
>>> [DEBUG] - aria::updateHook at: 1386784753.725.392
>>> [DEBUG] - aria::updateHook at: 1386784753.729.400
>>> [DEBUG] - aria::updateHook at: 1386784753.733.392
>>> ArRobotPacketReceiver::receivePacket: bad packet, bad checksum
>>> [DEBUG] - aria::updateHook at: 1386784753.737.227
>>> [DEBUG] - aria::updateHook at: 1386784753.741.226
>>> [DEBUG] - aria::updateHook at: 1386784753.745.274
>>> [DEBUG] - aria::updateHook at: 1386784753.749.305
>>> [DEBUG] - aria::updateHook at: 1386784753.781.249
>>> [DEBUG] - aria::updateHook at: 1386784753.881.453
>>> [DEBUG] - aria::updateHook at: 1386784753.981.492
>>> [DEBUG] - aria::updateHook at: 1386784754.081.523
>>> [DEBUG] - aria::updateHook at: 1386784754.181.392
>>> [DEBUG] - aria::updateHook at: 1386784754.281.428
>>> [DEBUG] - aria::updateHook at: 1386784754.381.462
>>> }}}
>>>
>>>
>>> For some reason this problem does no longer occur as soon as the camera
>>> loggers are stopped. It also does not occur when the aria Task is
>>> started outside of syskit by using the default deployment and the
>>> TaskInspector or the orocos.rb API.
>>>
>>> It looks like the whole task is blocked somehow (the updateHook is not
>>> really taking that much processing time).
>>> Any ideas where this might come from and why this only occurs when
>>> running both tasks with loggers in syskit?
>>>
>>> Regards,
>>> Christian
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Rock-dev mailing list
>>> Rock-dev at dfki.de
>>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>>
>>
>> -- 
>>   Dipl.-Inf. Matthias Goldhoorn
>>   Space and Underwater Robotic
>>
>>   Universität Bremen
>>   FB 3 - Mathematik und Informatik
>>   AG Robotik
>>   Robert-Hooke-Straße 1
>>   28359 Bremen, Germany
>>
>>   Zentrale: +49 421 178 45-6611
>>
>>   Besuchsadresse der Nebengeschäftstelle:
>>   Robert-Hooke-Straße 5
>>   28359 Bremen, Germany
>>
>>   Tel.:    +49 421 178 45-4193
>>   Empfang: +49 421 178 45-6600
>>   Fax:     +49 421 178 45-4150
>>   E-Mail:matthias.goldhoorn at informatik.uni-bremen.de
>>
>>   Weitere Informationen:http://www.informatik.uni-bremen.de/robotik
>>
>>
>>
>> _______________________________________________
>> Rock-dev mailing list
>> Rock-dev at dfki.de
>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>>
>
>
>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev


-- 
Dipl.-Ing. Alexander Duda
Unterwasserrobotik
Robotics Innovation Center

Hauptgeschäftsstelle Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 1
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-6620
  Zentrale: +49 421 178 45-0
  Fax:      +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
  E-Mail:   Alexander.Duda at dfki.de

  Weitere Informationen: http://www.dfki.de/robotik
  -----------------------------------------------------------------------
  Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
  Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
  Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
  (Vorsitzender) Dr. Walter Olthoff
  Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
  Amtsgericht Kaiserslautern, HRB 2313
  Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
  USt-Id.Nr.:    DE 148646973
  Steuernummer:  19/673/0060/3

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.dfki.de/pipermail/rock-dev/attachments/20131216/22645859/attachment.htm 


More information about the Rock-dev mailing list