Will Deacon
0e0ea02b6a
ARM: 7495/1: mutex: use generic atomic_dec-based implementation for ARMv6+
...
Commit a76d7bd96d65 ("ARM: 7467/1: mutex: use generic xchg-based
implementation for ARMv6+") removed the barrier-less, ARM-specific
mutex implementation in favour of the generic xchg-based code.
Since then, a bug was uncovered in the xchg code when running on SMP
platforms, due to interactions between the locking paths and the
MUTEX_SPIN_ON_OWNER code. This was fixed in 0bce9c46bf3b ("mutex: place
lock in contended state after fastpath_lock failure"), however, the
atomic_dec-based mutex algorithm is now marginally more efficient for
ARM (~0.5% improvement in hackbench scores on dual A15).
This patch moves ARMv6+ platforms to the atomic_dec-based mutex code.
Acked-by: Nicolas Pitre <nico@linaro.org >
Signed-off-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2013-03-15 17:09:41 -07:00
..
2013-03-15 17:05:59 -07:00
2013-03-04 12:43:24 -08:00
2013-02-27 18:17:35 -08:00
2012-03-29 18:02:10 -07:00
2012-03-28 18:30:01 +01:00
2012-04-03 10:59:10 -07:00
2012-03-28 18:30:01 +01:00
2012-03-28 18:30:01 +01:00
2013-02-25 11:25:46 -08:00
2011-10-17 09:13:41 +01:00
2012-03-28 18:30:01 +01:00
2012-03-28 18:30:01 +01:00
2012-03-28 18:30:01 +01:00
2012-03-21 01:59:40 -04:00
2011-10-17 09:02:43 +01:00
2011-12-02 15:16:33 +00:00
2013-02-20 01:32:28 -08:00
2013-03-07 15:23:19 -08:00
2012-03-28 18:30:01 +01:00
2013-02-27 18:14:48 -08:00
2013-03-07 15:23:19 -08:00
2013-03-07 15:23:22 -08:00
2012-03-28 18:30:01 +01:00
2013-02-20 02:50:19 -08:00
2011-12-11 08:35:50 +00:00
2012-03-24 09:38:51 +00:00
2011-10-23 13:32:29 +01:00
2011-10-17 09:02:44 +01:00
2012-03-28 18:30:01 +01:00
2012-04-09 13:57:51 -07:00
2012-04-09 13:57:51 -07:00
2013-02-20 01:32:07 -08:00
2012-01-25 11:07:40 +00:00
2012-01-08 09:27:19 +00:00
2013-02-25 11:25:46 -08:00
2012-03-20 21:48:30 +08:00
2011-12-13 15:07:49 +00:00
2011-12-06 14:04:15 +00:00
2013-02-20 02:50:18 -08:00
2012-01-03 22:55:18 -05:00
2012-04-09 13:53:11 -07:00
2012-04-15 22:00:31 +01:00
2011-10-17 09:12:40 +01:00
2012-01-17 16:17:01 -05:00
2013-02-27 18:09:25 -08:00
2012-01-25 20:37:45 -06:00
2012-01-13 15:02:35 +00:00
2013-02-20 02:50:17 -08:00
2012-03-24 09:38:51 +00:00
2013-03-15 17:07:39 -07:00
2012-03-28 18:30:01 +01:00
2013-03-15 17:09:41 -07:00
2012-03-24 09:38:51 +00:00
2011-10-17 09:11:51 +01:00
2013-02-20 02:44:00 -08:00
2012-02-23 20:19:04 -07:00
2013-02-27 18:12:13 -08:00
2013-03-15 17:07:39 -07:00
2011-12-08 10:30:39 +00:00
2011-10-06 15:40:06 +01:00
2011-10-06 15:40:05 +01:00
2011-12-08 10:30:37 +00:00
2011-12-08 10:30:39 +00:00
2011-12-08 10:30:39 +00:00
2011-12-08 10:30:39 +00:00
2011-12-08 10:30:39 +00:00
2012-03-23 16:58:31 -07:00
2013-02-27 18:21:22 -08:00
2013-03-15 17:09:10 -07:00
2012-02-14 12:01:28 -08:00
2011-12-08 10:30:39 +00:00
2013-02-27 18:21:22 -08:00
2012-03-24 09:38:54 +00:00
2012-01-17 16:17:01 -05:00
2013-03-15 17:07:39 -07:00
2013-02-20 02:49:03 -08:00
2011-12-18 23:00:26 +00:00
2013-02-20 02:50:14 -08:00
2012-01-23 10:20:05 +00:00
2012-03-13 13:45:54 +00:00
2013-02-20 02:49:13 -08:00
2012-02-24 01:37:35 -08:00
2013-02-27 18:18:57 -08:00
2012-01-14 18:03:30 -08:00
2012-03-28 18:30:01 +01:00
2012-03-28 18:30:01 +01:00
2012-03-28 15:58:21 -07:00
2012-03-28 18:30:01 +01:00
2013-03-15 17:08:47 -07:00
2012-02-02 17:37:42 +00:00
2013-02-20 02:48:50 -08:00
2012-04-28 11:01:30 +01:00
2011-11-30 23:55:21 +00:00
2012-01-23 10:24:11 +00:00
2012-01-03 22:55:17 -05:00
2012-03-28 18:30:01 +01:00
2012-01-16 08:56:25 -06:00
2011-12-13 15:07:49 +00:00
2011-12-06 11:16:13 +00:00
2013-02-27 18:09:25 -08:00