Commit Graph

376 Commits

Author SHA1 Message Date
Florian Pose 74ec61add4 Execute master FSM in fast mode also if slave FSM are busy. 2022-06-08 16:11:43 +02:00
Matthias Schoepfer e6d842cc8f master: added 'run_on_cpu' module parameter to bind kthreads to a cpu
When you use isolcpus to isolate a cpu for the realtime task, as well
as assiging all relevant interrupts to this cpu, it makes sense to
also bind the EtherCAT-OP / EtherCAT-IDLE task to this cpu to reduce
the cache misses and avoid data migration between cores. Therefore
a parameter 'run_on_cpu' is added, that takes the cpu number (same as
in isolcpus, not a smp_affinity mask). If unset, will bind to any cpu
and will be migratable.

The reason to put this into the kernel module is, that the thread is
created during runtime, i.e. when the userspace program is starting
the ethercat master. It would be rather hacky, to find the pid of the
EtherCAT-xx thread and migrate it at this point.

Signed-off-by: Matthias Schoepfer <m.schoepfer@rethinkrobotics.com>
2021-09-27 14:56:01 +02:00
Florian Pose 4e11a50670 Define set_normal_priority() inside #ifdef EC_EOE. Fixes #12. 2021-08-25 09:47:26 +02:00
Florian Pose cd0d17d6a5 Also changed license of gloabl headers to LGPL.
Moved definition of EC_SDO_INJECTION_TIMEOUT to master.c.
2021-07-23 13:33:54 +02:00
Nicola Fontana 2600c89390 Fix sched_setscheduler undefined on kernel 5.9
sched_setscheduler is no more exported:
    https://lkml.org/lkml/2020/4/22/1071
2021-03-05 15:16:15 +01:00
Florian Pose 21d0fb5176 Fixed missing include for struct sched_param. 2020-04-03 12:09:39 +02:00
Florian Pose f03f15a6fc Added ecrt_master_sync_reference_clock_to() method. 2018-11-26 17:41:27 +01:00
Florian Pose 083bd419b8 Renamed app_start_time to dc_ref_time; output via command-line tool. 2018-11-26 17:17:18 +01:00
Florian Pose 538c3d7c04 Improved buffer overflow messages. 2017-12-13 15:39:13 +01:00
Florian Pose a694e3055f Support scheduler parameters in kernels >= 4.11. 2017-12-06 10:09:50 +01:00
Florian Pose 39919cd96a Fixed statistics filter initialisation. 2017-10-12 13:22:06 +02:00
Florian Pose b6930dfa9b Fixed possible NULL pointer dereference; thanks to Matthieu Bec. 2014-05-05 13:49:45 +02:00
Florian Pose e385a9bb62 Added configure switch --disable-rt-syslog. 2013-10-21 19:27:50 +02:00
Florian Pose 605739d78a Introduced FORCE_OUTPUT_CORRUPTED. 2013-05-21 13:18:24 +02:00
Florian Pose b0eace9ef1 Implemented emergency register requests to analyze a broken bus. 2013-05-13 20:21:19 +02:00
Florian Pose f6f5460485 Updated Doxygen documentation. 2013-02-12 15:46:43 +01:00
Florian Pose 032acb3d85 Avoided io_sem locking from userspace/rtdm library. 2013-01-10 17:36:41 +01:00
Florian Pose 623c91c545 Fixed io_sem usage in queue_external_datagrams(). 2012-12-06 18:11:11 +01:00
Florian Pose 43202f7e32 Send sync datagrams only if reference clock is found. 2012-12-05 15:54:49 +01:00
Florian Pose 5f73e9c046 Using common waitqueue for requests. 2012-12-04 16:05:23 +01:00
Florian Pose 72b60d1c07 Removed unnecessary ec_master_soe_request_t type. 2012-12-04 14:49:23 +01:00
Florian Pose de0ce09db9 Removed unnecessary ec_master_sdo_request_t. 2012-12-04 13:28:38 +01:00
Florian Pose 6863b34ff1 Minor: Renamed slave_sdo_requests. 2012-12-04 12:59:15 +01:00
Florian Pose 1322a3b6a8 Removed unused method. 2012-12-04 12:22:38 +01:00
Florian Pose cf327f63c8 Mark processing SDO request as invalid if config is cleared. 2012-12-04 12:09:42 +01:00
Florian Pose e59b790583 Reset master state machine when going to orphaned phase. 2012-12-04 11:57:55 +01:00
Florian Pose 879a17fa56 Minor changes. 2012-12-04 11:54:13 +01:00
Florian Pose 3cb0b12899 Added configure option for redundancy (--with-devices). 2012-11-30 20:15:31 +01:00
Florian Pose becf05dbd6 Added interface to select the reference clock and to sync to it.
Added rtai_rtdm_dc example, thanks to Graeme Foot.
2012-11-20 14:35:53 +01:00
Florian Pose 4773e88bf6 Added interface to read/write register contents; re-worked register requests. 2012-11-14 22:12:57 +01:00
Florian Pose 88b99dcd07 Removed state-dependent skip messages. 2012-11-14 22:00:11 +01:00
Florian Pose ef68a4bff1 Added ecrt_sdo_request_index() method to change index and subindex. 2012-10-04 10:07:52 +02:00
Florian Pose 9faaa83212 Re-worked and seamlessly integrated RTDM interface. 2012-09-20 15:28:25 +02:00
Florian Pose b0b7e6fde4 Removed trailing spaces. 2012-09-06 20:22:24 +02:00
Florian Pose 6c9e725c29 Added ecrt_master_link_state() to retrieve information about a redundant link. 2012-05-31 11:03:58 +02:00
Florian Pose 4c3c5c2778 Slave scanning and configuration on all links. 2012-04-06 23:35:05 +02:00
Florian Pose f30e8a0572 Improved/fixed frame statistics (low-pass filters). 2012-03-19 10:43:09 +01:00
Florian Pose e960e20bb3 Fixed frame loss statistics. 2012-03-19 09:56:36 +01:00
Florian Pose 8b19812c17 Fixed sending on backup link if main link is down. 2012-03-17 09:06:58 +01:00
Florian Pose b54aefc56a Added fix for ESC port order (DC delay calculation). 2012-01-30 15:17:34 +01:00
Florian Pose 70f91bf0d4 Fixed reset of allow_scanning flag if ecrt_master_activate() was not called. 2012-01-13 11:27:20 +01:00
Florian Pose 94a4f01ba5 Copy missing slave_info data in kernel space. 2012-01-10 10:11:20 +01:00
Florian Pose 429b3ee07e Avoided unused variable warnings. 2012-01-09 17:42:28 +01:00
Florian Pose db64bfe5a5 Removed unnecessary call of ec_master_inject_external_datagrams(). 2011-12-16 16:29:00 +01:00
Florian Pose d59c70eedc Improved resetting number of responding slaves. 2011-12-09 10:35:23 +01:00
Florian Pose 1f428c78bf Minor: Ordered master member initialisations. 2011-12-09 10:46:25 +01:00
Florian Pose 522a63df8a Redundant outputs via datagram pairs. 2012-01-12 17:41:05 +01:00
Florian Pose 849f37cd41 Datagram device_index member. 2012-01-12 13:55:15 +01:00
Florian Pose 6d932e88d5 Devices as array; lock all device modules with module_get(). 2012-01-12 12:14:33 +01:00
Florian Pose ed7f9885b2 Adjusted frame statistics for the use with two devices. 2011-11-09 14:53:33 +01:00