Commit Graph

166 Commits

Author SHA1 Message Date
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 083bd419b8 Renamed app_start_time to dc_ref_time; output via command-line tool. 2018-11-26 17:17:18 +01: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 5f73e9c046 Using common waitqueue for requests. 2012-12-04 16:05:23 +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 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 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 953e723f31 Minor. 2011-12-09 10:46:04 +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 a4adf60027 Removed allow_config flag and obsolete request to OP. 2011-09-16 14:10:23 +02:00
Florian Pose 8b6d5f8af3 Fixed bug that caused the configuration not to be cleared when reserved but
not activated and then releasing.
2010-06-02 22:54:08 +02:00
Florian Pose d9f27a2597 Made send_interval variable an unsigned int; fixed format specifiers for
size_t variables.
2010-05-20 12:35:36 +02:00
Florian Pose 9c91630351 Write DC system time offsets right after slave scan / config change. Wait for DC clock discipline. 2010-05-06 11:42:52 +02:00
Florian Pose 62b722ab33 Improved syslog macros. 2010-05-03 18:07:57 +02:00
Florian Pose d24bede41c Added missing code documentation. 2010-04-19 21:56:16 +02:00
Florian Pose 1cea08c920 Removed unused variable frames_timed_out. 2010-03-07 21:20:40 +01:00
Florian Pose a144042657 Removed tabulators. 2010-02-05 10:29:47 +01:00
Martin Troxler 94fec37d0f use given send interval to limit SDO/FOE traffic 2009-12-15 10:55:36 +01:00
Martin Troxler d823576945 Moved FOE request queue and fsm into slaves 2009-12-01 16:00:22 +01:00
Martin Troxler abb3588747 Moved sdo request queue to slaves 2009-12-01 14:24:57 +01:00
Martin Troxler cb33213076 ecrt_master_set_max_cycle_size: limit SDO traffic 2009-11-30 12:26:56 +01:00
Martin Troxler 0d17968348 Each slave got its own SDO state machine (faster handling of external SDO requests) 2009-11-26 15:33:48 +01:00
Florian Pose 700226ac83 DC synchrony monitoring methods. 2009-08-21 12:15:16 +02:00
Florian Pose 103eb7139c Added ecrt_master_deactivate() to remove the bus configuration. 2009-08-20 14:27:35 +02:00
Florian Pose 694838c9f6 Fixed compiler error on --disable-eoe. 2009-08-04 07:54:16 +00:00
Florian Pose f411a51ca6 Re-added callback data pointer, because it is necessary for some applications. 2009-07-29 09:19:53 +00:00
Florian Pose a3c32e8b67 Improved the callback mechanism. 2009-07-13 15:18:28 +00:00
Florian Pose f7e14d2915 EoE processing with kthread. 2009-06-30 11:11:56 +00:00
Florian Pose 1baa06d05b ethercat eoe command. 2009-06-26 09:46:57 +00:00
Florian Pose 6935cbb247 Use application start time as a common reference for cyclic generation
start times.
2009-05-04 12:11:00 +00:00
Florian Pose 29eb2d7d06 Transition delay calculation. TBC... 2009-04-30 14:12:47 +00:00
Florian Pose f4b6807cc9 Bus topology calculation. 2009-04-29 09:43:04 +00:00
Florian Pose 5e79dc8c06 Find DC reference clock. 2009-04-20 14:33:47 +00:00
Florian Pose 4694cde027 Added debug_level module parameter. debug_level is now unsigned int. 2009-04-17 12:03:12 +00:00
Florian Pose 0dd5ec3567 DC sync reference clock to application time. TBC... 2009-04-09 18:21:18 +00:00
Florian Pose de1a332eee Introduced ecrt_master_sync() for synchronizing slave clocks to reference clock. 2009-04-09 10:21:47 +00:00
Florian Pose 7f97ba66a2 Renamed phy_ commands to reg_. 2009-04-08 12:48:59 +00:00
Florian Pose a5752e0123 Preparations to compile against 2.6.27. 2009-03-09 09:08:09 +00:00
Florian Pose 12c12b1bab Improved and added license headers. 2009-02-24 12:51:39 +00:00
Florian Pose 7a703ecb05 merge -c1616 branches/1.4-foe: Included FoE patch from Olav Zarges. 2009-01-26 13:01:58 +00:00
Florian Pose 826ae37b26 merge -c1604 branches/stable-1.4: Fixed spelling of EtherCAT terms. 2009-01-26 11:45:30 +00:00