Commit Graph

169 Commits

Author SHA1 Message Date
Knud Baastrup ba27819221 Applied base-0024-Sdo-directory-now-only-fetched-on-request
Sdo directory now only fetched on request.

The time-consuming SDO directory fetch during slave scan can now be
skipped by setting the EC_SKIP_SDO_DICT in globals.h. The directory
will now instead be fethed the first time an ethercat sdos command
is executed with the ethercat tool.
2023-08-29 14:38:54 +02:00
Esben Haabendal 81758004fd Improve synchronization of master->domains list
Introduce a new lock for synchronization of the master->domains list, and use
that instead of the big master_sem lock, improving real-time performance of
fx. ecrt_domain_process() when EoE thread is being shut down (or other
use-cases where master_sem is held for extended periods).

The following locking order is used:

* master->master_sem
* master->domains_lock
* master->io_sem
* domain->datagram_pairs_lock

Meaning that it is allowed to take domains_lock while holding master_sem, and
it is allowed to hold domains_lock while locking io_sem and
datagram_pairs_lock.

[RV: For now, the lockdep_assert_held() annotations are commented out,
since they don't compile with CONFIG_PROVE_LOCKING and (the default)
--disable-rtmutex.]
2022-09-01 15:38:01 +02:00
Esben Haabendal e243c6b7db Clarify purpose of master->io_sem
In order to ensure proper use of locking, the purpose of each mutex/semaphore
must be clear and documented.

This is my best guess.  The master->io_sem has a simple purpose, synchronizing
access to the master->datagram_queue list structure.
2022-09-01 15:37:50 +02:00
Florian Pose 9955855f7e Applied 0016-If-enable-rtmutex-use-rtmutexes-instead-of-semaphore.patch 2022-06-23 11:21:51 +02:00
Florian Pose 225af9f787 Applied 0008-read-reference-slave-clock-64bit-time.patch 2022-06-23 10:45:16 +02:00
Florian Pose 17eddce68d Applied 0002-Distributed-Clock-fixes-from-Jun-Yuan.patch 2022-06-23 10:12:12 +02:00
Florian Pose 9d733cb1a9 Renamed app_start_time to dc_ref_time; output via command-line tool. 2021-08-24 16:48:07 +02:00
Gavin Lambert 1d35113c85 Abort requests started for slave_configs that don't have any actual slaves. 2015-04-14 09:35:15 -04:00
Florian Pose 99418519bd Reverted default branch to stable-1.5. 2014-11-03 15:20:05 +01:00
Florian Pose 4c0e5279e1 Removed allow_config flag and obsolete request to OP. 2011-09-16 14:10:23 +02:00
Florian Pose c57242219f Minor: Fixed line wraps and spacing. 2011-08-01 17:02:45 +02:00
Martin Troxler ae09c143c9 Reduced frame size when sending to mailbox, uses 2 datagrams. Enabled with configure option --enable-mboxframesize 2011-03-14 16:55:09 +01:00
Martin Troxler 85822a6242 Optionally compile with trace_printk support 2011-01-12 14:56:53 +01:00
Martin Troxler c059ec6f49 use rt_mutex instead of semaphore for mutual exclusion (use --enable-mutex) 2011-01-05 08:36:53 +01:00
Martin Troxler 075dce4d7e ecrt_master_callbacks: replaced send/receive callback mechanism with locking mechanism; removed ecrt_master_send_ext 2010-12-16 15:47:28 +01:00
Martin Troxler fc0ab2c764 removed now obsolete ext_datagram_queu 2010-12-16 11:29:23 +01:00
Martin Troxler c15f66ae48 removed eoe thread: eoe processing now done by Idle/Operation thread 2010-12-16 11:23:32 +01:00
Martin Troxler fedec244d8 replaced injection_seq mechanism with fsm datagram queue 2010-12-16 09:49:17 +01:00
Martin Troxler efa248364d renamed dc_cycles_app_time -> dc_cycles_app_start_time & dc_jiffies_app_time -> dc_jiffies_app_start_time 2010-11-22 09:53:43 +01:00
Martin Troxler a55d77d7ed merged 2010-10-18 10:45:07 +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
Martin Troxler d135711521 merged 2010-05-11 13:57:58 +02:00
Martin Troxler ef375c0935 Improved distributed clock offset calculation to speed-up initial drift compensation 2010-05-07 15:25:55 +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