Re: [PATCH v2 2/5] arm64: Work around Falkor erratum 1003

2016-12-29 Thread kbuild test robot
Hi Shanker, [auto build test ERROR on next-20161224] [also build test ERROR on v4.10-rc1] [cannot apply to arm64/for-next/core v4.9-rc8 v4.9-rc7 v4.9-rc6] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/

Re: [PATCH v2 2/5] arm64: Work around Falkor erratum 1003

2016-12-29 Thread Timur Tabi
On 12/29/2016 04:43 PM, Christopher Covington wrote: +config QCOM_FALKOR_E1003_RESERVED_ASID + int + default 1 + depends on QCOM_FALKOR_ERRATUM_1003 Also, since this can't be changed via the menu, why bother putting it in? -- Qualcomm Datacenter Technologies, Inc. as an affil

Re: [PATCH v2 2/5] arm64: Work around Falkor erratum 1003

2016-12-29 Thread Timur Tabi
On 12/29/2016 04:43 PM, Christopher Covington wrote: -| Implementor| Component | Erratum ID | Kconfig | -++-+-+-+ -| ARM| Cortex-A53 | #826319 | ARM64_ERRATUM_826319

[PATCH v2 2/5] arm64: Work around Falkor erratum 1003

2016-12-29 Thread Christopher Covington
From: Shanker Donthineni On the Qualcomm Datacenter Technologies Falkor v1 CPU, memory accesses may allocate TLB entries using an incorrect ASID when TTBRx_EL1 is being updated. Changing the TTBRx_EL1[ASID] and TTBRx_EL1[BADDR] fields separately using a reserved ASID will ensure that there are no

[PATCH v2 5/5] arm64: Work around Falkor erratum 1009

2016-12-29 Thread Christopher Covington
During a TLB invalidate sequence targeting the inner shareable domain, Falkor may prematurely complete the DSB before all loads and stores using the old translation are observed; instruction fetches are not subject to the conditions of this erratum. Signed-off-by: Christopher Covington Change-Id

Re: [PATCH v4 07/20] futex: Introduce throughput-optimized (TP) futexes

2016-12-29 Thread kbuild test robot
Hi Waiman, [auto build test WARNING on linus/master] [also build test WARNING on v4.10-rc1 next-20161224] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Waiman-Long/futex-Introducing-throughput-

Re: [PATCH v4 16/20] TP-futex: Group readers together in wait queue

2016-12-29 Thread kbuild test robot
Hi Waiman, [auto build test ERROR on linus/master] [also build test ERROR on v4.10-rc1 next-20161224] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Waiman-Long/futex-Introducing-throughput-opti

Re: [PATCH v4 16/20] TP-futex: Group readers together in wait queue

2016-12-29 Thread kbuild test robot
Hi Waiman, [auto build test ERROR on linus/master] [also build test ERROR on v4.10-rc1 next-20161224] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Waiman-Long/futex-Introducing-throughput-opti

Re: [PATCH v4 20/20] futex: Dump internal futex state via debugfs

2016-12-29 Thread kbuild test robot
Hi Waiman, [auto build test WARNING on linus/master] [also build test WARNING on v4.10-rc1 next-20161224] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Waiman-Long/futex-Introducing-throughput-

Re: [PATCH v4 14/20] TP-futex: Support userspace reader/writer locks

2016-12-29 Thread kbuild test robot
Hi Waiman, [auto build test WARNING on linus/master] [also build test WARNING on v4.10-rc1 next-20161224] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Waiman-Long/futex-Introducing-throughput-

[PATCH v4 07/20] futex: Introduce throughput-optimized (TP) futexes

2016-12-29 Thread Waiman Long
A new futex implementation called throughput-optimized (TP) futexes is introduced. The goal of this new futex type is to maximize locking throughput at the expense of fairness and deterministic latency. Its throughput is higher than that of the wait-wake futexes especially on systems with a large n

[PATCH v4 02/20] futex: Rename futex_pi_state to futex_state

2016-12-29 Thread Waiman Long
The futex_pi_state structure will be overloaded in later patches to store state information about non-PI futexes. So the structure name itself is no longer a good description of its purpose. So its name is changed to futex_state, a more generic name. Some of the functions that process the futex st

[PATCH v4 05/20] futex: Add a new futex type field into futex_state

2016-12-29 Thread Waiman Long
As the futex_state structure will be overloaded in later patches to be used by non-PI futexes, it is necessary to add a type field to distinguish among different types of futexes. Signed-off-by: Waiman Long --- kernel/futex.c | 15 +++ 1 file changed, 11 insertions(+), 4 deletions(-)

[PATCH v4 06/20] futex: Allow direct attachment of futex_state objects to hash bucket

2016-12-29 Thread Waiman Long
Currently, the futex state objects can only be located indirectly as hash bucket => futex_q => futex state Actually it can be beneficial in some cases to locate the futex state object directly from the hash bucket without the futex_q middleman. Therefore, a new list head to link the futex

[PATCH v4 04/20] futex: Consolidate pure pi_state_list add & delete codes to helpers

2016-12-29 Thread Waiman Long
Two new helper functions (task_pi_list_add & task_pi_list_del) are created to consolidate all the pure pi_state_list addition and insertion codes. The set_owner argument in task_pi_list_add() will be needed in a later patch. Signed-off-by: Waiman Long --- kernel/futex.c | 64

[PATCH v4 03/20] futex: Add helpers to get & cmpxchg futex value without lock

2016-12-29 Thread Waiman Long
Two new helper functions cmpxchg_futex_value() and get_futex_value() are added to access and change the futex value without the hash bucket lock. As a result, page fault is enabled and the page will be faulted in if not present yet. Signed-off-by: Waiman Long --- kernel/futex.c | 15 +++

[PATCH v4 01/20] futex: Consolidate duplicated timer setup code

2016-12-29 Thread Waiman Long
A new futex_setup_timer() helper function is added to consolidate all the hrtimer_sleeper setup code. Signed-off-by: Waiman Long --- kernel/futex.c | 67 -- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/kernel/futex.c b/ke

[PATCH v4 10/20] TP-futex: Return status code on FUTEX_LOCK calls

2016-12-29 Thread Waiman Long
To better understand how the TP futexes are performing, it is useful to return the internal status on the TP futexes. The FUTEX_LOCK futex(2) syscall will now return a positive status code if no error happens. The status code consists of the following 3 fields: 1) Bits 00-07: code on how the lock

[PATCH v4 08/20] TP-futex: Enable robust handling

2016-12-29 Thread Waiman Long
The TP futexes don't have code to handle the death of futex owners. There are 2 different cases that need to be considered. As top waiter gets a reference to the task structure of the futex owner, the task structure will never go away even if the owner dies. When the futex owner died while the top

[PATCH v4 09/20] TP-futex: Implement lock handoff to prevent lock starvation

2016-12-29 Thread Waiman Long
The current TP futexes has no guarantee that the top waiter (serialization mutex owner) can get the lock within a finite time. As a result, lock starvation can happen. A lock handoff mechanism is added to the TP futexes to prevent lock starvation from happening. The idea is that the top waiter can

[PATCH v4 13/20] perf bench: New microbenchmark for userspace mutex performance

2016-12-29 Thread Waiman Long
This microbenchmark simulates how the use of different futex types can affect the actual performanace of userspace mutex locks. The usage is: perf bench futex mutex Three sets of simple mutex lock and unlock functions are implemented using the wait-wake, PI and TP futexes respectively. T

[PATCH v4 11/20] TP-futex: Add timeout support

2016-12-29 Thread Waiman Long
Unlike other futexes, TP futexes do not accept the specification of a timeout value. To align with the other futexes, timeout support is now added. However, the timeout isn't as precise as the other futex types due to the fact that timer expiration can't be detected when the thread is waiting in t

[PATCH v4 18/20] perf bench: New microbenchmark for userspace rwlock performance

2016-12-29 Thread Waiman Long
This microbenchmark simulates how the use of different futex types can affect the actual performanace of userspace rwlock locks. The usage is: perf bench futex rwlock Three sets of simple rwlock lock and unlock functions are implemented using the wait-wake, TP futexes and glibc rwlock re

[PATCH v4 14/20] TP-futex: Support userspace reader/writer locks

2016-12-29 Thread Waiman Long
The TP futexes was designed to support userspace mutually exclusive locks. They are now extended to support userspace reader/writer locks as well. Two new futex command codes are added: 1) FUTEX_LOCK_SHARED - to acquire a shared lock (reader-lock) 2) FUTEX_UNLOCK_SHARED - to release a shred lock

[PATCH v4 20/20] futex: Dump internal futex state via debugfs

2016-12-29 Thread Waiman Long
For debugging purpose, it is sometimes useful to dump the internal states in the futex hash bucket table. This patch adds a file "futex_hash_table" in debugfs root filesystem to dump the internal futex states. Signed-off-by: Waiman Long --- kernel/futex.c | 82 +++

[PATCH v4 19/20] sched, TP-futex: Make wake_up_q() return wakeup count

2016-12-29 Thread Waiman Long
Unlike wake_up_process(), wake_up_q() doesn't tell us how many tasks have been woken up. This information can sometimes be useful for tracking purpose. So wake_up_q() is now modified to return that information. Signed-off-by: Waiman Long --- include/linux/sched.h | 2 +- kernel/futex.c|

[PATCH v4 15/20] TP-futex: Enable kernel reader lock stealing

2016-12-29 Thread Waiman Long
The TP-futexes prefer writers as the code path is much simpler for them. This may not be good for overall system performance especially if there is a fair amount of reader activities. This patch enables kernel reader to steal the lock when the futex is currently reader-owned and the lock handoff m

[PATCH v4 16/20] TP-futex: Group readers together in wait queue

2016-12-29 Thread Waiman Long
All the TP futex lock waiters are serialized in the kernel using a kernel mutex which acts like a wait queue. The order at which the waiters popped out from the wait queue will affect performance when exclusive (writer) and shared (reader) lock waiters are mixed in the queue. The worst case scenari

[PATCH v4 17/20] TP-futex, doc: Update TP futexes document on shared locking

2016-12-29 Thread Waiman Long
The tp-futex.txt was updated to add description about shared locking support. Signed-off-by: Waiman Long --- Documentation/tp-futex.txt | 163 +++-- 1 file changed, 143 insertions(+), 20 deletions(-) diff --git a/Documentation/tp-futex.txt b/Documentation

[PATCH v4 12/20] TP-futex, doc: Add TP futexes documentation

2016-12-29 Thread Waiman Long
This patch adds a new document file on how to use the TP futexes. Signed-off-by: Waiman Long --- Documentation/00-INDEX | 2 + Documentation/tp-futex.txt | 161 + 2 files changed, 163 insertions(+) create mode 100644 Documentation/tp-futex.txt

[PATCH v4 00/20] futex: Introducing throughput-optimized (TP) futexes

2016-12-29 Thread Waiman Long
v3->v4: - Properly handle EFAULT error due to page fault. - Extend the use cases of TP futexes to userspace rwlock. - Change the lock handoff trigger from number of spinnings to elapsed time (5ms). - Various updates to the "perf bench futex mutex" microbenchmark. - Add a new "perf be

Re: [PATCH v6] watchdog: nic7018_wdt: Add NIC7018 watchdog driver

2016-12-29 Thread Guenter Roeck
On 12/28/2016 10:56 PM, Hui Chun Ong wrote: Add support for the watchdog timer on PXI Embedded Controller. Reviewed-by: Guenter Roeck Signed-off-by: Hui Chun Ong --- v5: Add Reviewed-by. There is no need to re-send a patch just to add a Reviewed-by:. Guenter v4: Remove nic7018_stop() fro