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
19b8ddea18
Add lock protection of domain->datagram_pairs
...
While domain->datagram_pairs was previously partly protected by the
master->master_sem lock (it was not done consistently though), the fix
to protection of master->datagram_queue made it even worse.
This change adds protection of domain->datagram_pairs using a new lock
dedicated to this. The domain->datagram_pairs_lock is acquired in the actual
functions accessing the domain->datagram_pairs, and this currently means that
it is acquired both in situations where master->master_sem is held and in
situations where master->io_sem is held.
2022-09-01 15:37:58 +02:00
Florian Pose
44c6c3d1da
Merge branch 'master' of ../git
2022-06-23 11:55:13 +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
4fe2599530
Strictly using KERN_CONT for continued printk() calls to avoid newlines.
2021-08-31 13:29:16 +02:00
Florian Pose
0e8ee10933
Avoided unused variables.
2021-08-24 18:12:27 +02:00
Florian Pose
dd49a34f83
Defined list_next_entry for older kernels.
2015-04-17 11:32:54 +02:00
Dave Page
8350b85879
Fix datagram overflow layout issue
2015-04-07 21:07:16 -04:00
Dave Page
fad06b32f1
overlapping PDO split datagram support
2015-04-06 14:39:31 -04:00
Dave Page
69b5eb3a4f
overlapping PDO initial working. datagram size is not correct
2015-04-02 16:49:36 -04:00
Dave Page
7beb81207d
Refactor fmmu->logical_start_address to fmmu->logical_domain_offset
2015-03-26 17:41:57 -04:00
Florian Pose
99418519bd
Reverted default branch to stable-1.5.
2014-11-03 15:20:05 +01:00
Florian Pose
89cbcd86bb
Avoided casting-away constness in expected working counter calculation.
2011-08-11 19:43:48 +02: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
d135711521
merged
2010-05-11 13:57:58 +02:00
Florian Pose
62b722ab33
Improved syslog macros.
2010-05-03 18:07:57 +02:00
Martin Troxler
196bc7db4d
Inplace I/O: let input Pdos use the same bus space as Output Pdos
2010-04-29 16:33:32 +02:00
Florian Pose
d24bede41c
Added missing code documentation.
2010-04-19 21:56:16 +02:00
Dominik Staubli
60b6807f24
Domain datagram working counter calculation bugfix: increment expected wc for a given slave & direction just once for each datagram
...
This bug occurs if you configure more than one SM in the same direction on the same slave
2010-01-21 11:09:31 +01:00
Florian Pose
49c2f676d5
Bugfix: Unqueue datagram before destroying.
2009-10-29 17:28:49 +01:00
Florian Pose
7ac08b531f
Avoid warnings on x86_64 platform. Thanks to Thomas Elste.
2009-10-19 13:12:40 +02:00
Florian Pose
12c12b1bab
Improved and added license headers.
2009-02-24 12:51:39 +00:00
Florian Pose
5ca3d24337
merge -c1603 branches/stable-1.4: Changed licence headers to avoid conflicts with the GPL; restricted licence to GPLv2 only.
2009-01-26 11:16:10 +00:00
Florian Pose
8d46a283f6
Improved error case return codes of many functions.
2008-11-17 17:18:02 +00:00
Florian Pose
72381046c2
merge -c1554 branches/stable-1.4: Fixed WC calculation for multiple datagrams.
2008-11-05 10:16:11 +00:00
Florian Pose
ffe107b658
Made ecrt_domain_size() const.
2008-10-10 07:58:48 +00:00
Florian Pose
64e1d6f678
Introduced ec_datagram_zero().
2008-09-30 07:34:55 +00:00
Florian Pose
1cf5448e88
Added debugging for configuration function of the application interface.
2008-08-01 09:24:26 +00:00
Florian Pose
d4fec010cb
Improved WC changes message.
2008-07-18 08:39:28 +00:00
Florian Pose
c0b7fca9b6
Improved source code doc.
2008-07-04 12:06:10 +00:00
Florian Pose
d942e87cef
Implemented master semaphore to secure concurrent access from ioctls, state machine and realtime interface.
2008-07-01 15:38:20 +00:00
Florian Pose
a81228a587
Store sync manager configurations in ec_slave_config_t instead of Pdo
...
lists for each direction; changed realtime interface to allow sync
manager configuration.
2008-06-26 13:16:15 +00:00
Florian Pose
dfa4860546
working_counter = 0x0000;
2008-06-18 14:37:00 +00:00
Florian Pose
9aa0789b33
Reverted revision number checking from r1228.
2008-06-17 09:44:46 +00:00
Florian Pose
541c2a0cd8
Added revision number to slave type checking.
2008-06-16 09:30:58 +00:00
Florian Pose
448eb13820
Removed kobject from domain.
2008-06-12 07:26:38 +00:00
Florian Pose
b5bee09143
Fixed calculation of expected working counter.
2008-06-10 09:54:30 +00:00
Florian Pose
4d5b2a41a8
'ethercat domain' shows domain contents and process data.
2008-06-04 13:17:15 +00:00
Florian Pose
94bb141623
Working counter as uint16_t.
2008-06-04 08:43:08 +00:00
Florian Pose
e6f758b4de
Some improvements concerning bit_position.
2008-05-30 08:56:47 +00:00
Richard Hacker
8e0484b1c4
Changed Pdo entry registration function - return byte and bit positions
2008-05-30 07:11:27 +00:00
Florian Pose
bf2e1b9ee1
Added bitwise Pdo registration.
2008-05-28 07:26:28 +00:00
Florian Pose
c8b67e13ee
Improved working counter output; fixed problem with slaves that have a single sync manager used for outputs.
2008-05-13 16:07:06 +00:00
Florian Pose
5cbdbc6d4b
Removed unused domain state.
2008-04-07 10:19:59 +00:00
Florian Pose
b4322990e2
Calculate expected working counter for domains.
2008-02-22 17:23:05 +00:00
Florian Pose
49baa165af
Support for slaves that don't support the LRW datagram type.
2008-02-22 16:04:23 +00:00
Florian Pose
7db358b508
External domain memory.
2008-02-21 15:49:02 +00:00
Florian Pose
873e517741
Moved ecrt_domain_reg_pdo_entry() to
...
ecrt_slave_config_reg_pdo_entry().
2008-02-21 09:50:54 +00:00
Florian Pose
6189092aed
Implemented most realtime interface changes for version 1.4, improved
...
ec_pdo_t and ec_pdo_entry_t classes, added fmmu_config_t, adjusted
minimal example, etc...
2008-02-19 08:22:20 +00:00
Florian Pose
52e374dd95
Esthetic surgery for domain.
2008-02-01 20:58:57 +00:00