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
Florian Pose
6127a95283
Poll both devices.
2011-11-09 12:58:09 +01:00