[PATCH v2 06/12] ARC: Support more than one PGDIR for KVADDR

2017-06-13 Thread Noam Camus
From: Noam Camus This way FIXMAP can have 2 PTEs per CPU even for NR_CPUS=4096 For the extreme case like in eznps platform We use all gutter between kernel and user. Signed-off-by: Noam Camus --- arch/arc/Kconfig | 11 +++ arch/arc/include/asm/highmem.h |8

[PATCH v2 05/12] ARC: Add CPU topology

2017-06-13 Thread Noam Camus
From: Noam Camus Now it is used for NPS SoC for multi-core of 256 cores and SMT of 16 HW threads per core. This way with topology the scheduler is much efficient in creating domains and later using them. Signed-off-by: Noam Camus --- arch/arc/Kconfig| 27 arch/arc/i

[PATCH v2 11/12] ARC: [plat-eznps] handle dedicated AUX registers

2017-06-13 Thread Noam Camus
From: Liav Rehana Preserve eflags and gpa1 auxiliaries during exception Registers used by compare exchange instructions. GPA1 is used for compare value, and EFLAGS got bit reflects atomic operation response. EFLAGS is zeroed for each new user task so it won't get its parent value. Signed-off-by

[PATCH v2 04/12] ARC: Allow irq threading

2017-06-13 Thread Noam Camus
From: Noam Camus Working with NPS400 we noticed that there is a possibility of L1 interrupt nesting that may run out kernel stack. The scenario include serving invoke_softirqs() from irq_exit() and once local_irq_enable() called can hit another one before we managed to restore last one and pop so

[PATCH v2 12/12] ARC: [plat-eznps] avoid toggling of DPC register

2017-06-13 Thread Noam Camus
From: Elad Kanfi HW bug description: in case of HW thread context switch the dpc configuration of the exiting thread is dragged one cycle into the next thread. In order to avoid the consequences of this bug, the DPC register is set to an initial value, and not changed afterwards. Signed-off-by:

[PATCH v2 00/12] plat-eznps upstream cont. set 2

2017-06-13 Thread Noam Camus
From: Noam Camus Chanlog: V1 -> V2 1) I added "Handle memory error as an exception" patch from previous set It now turn do_memory_error() into weak sybol. It is then overriden by NPS400 platform, to simply call die(). 2) This set is now based on arc-next branch Summary: With this patch set

[PATCH v2 08/12] ARC: [plat-eznps] new command line argument for HW scheduler at MTM

2017-06-13 Thread Noam Camus
From: Noam Camus We add ability for all cores at NPS SoC to control the number of cycles HW thread can execute before it is replace with another eligible HW thread within the same core. The replacement is done by the HE scheduler. Signed-off-by: Noam Camus --- Documentation/admin-guide/kernel-

[PATCH v2 07/12] ARC: [NUMA] added CONFIG_NUMA for plat-eznps

2017-06-13 Thread Noam Camus
From: Noam Camus This is needed for NPS400 where high memory is assigned to node1 where the associated addresses are lower than node0. This use case is not typical and just using discontigmem is not enough since nodes assumed to have increasing address range. i.e. address range of node0 assumed t

[PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception

2017-06-13 Thread Noam Camus
From: Noam Camus On ARC700, user mode memory error is treated as L2 interrupt, but NPS hardware treats it as Machine Check exception. Address this by defining an NPS specific bus error handler. Signed-off-by: Noam Camus Signed-off-by: Elad Kanfi --- arch/arc/kernel/traps.c |2 +- arc

[PATCH v2 10/12] ARC: [plat-eznps] Save/Restore extra auxiliary registers

2017-06-13 Thread Noam Camus
From: Noam Camus thread_struct got new field for data plane of eznps platform. This field got place for data plane auxiliary registers and for any extra registers that might be changed in kernel code. We save EFLAGS, and GPA1 auxiliary registers since they may be changed by the new task while us

[PATCH v2 09/12] ARC: [plat-eznps] Update the init sequence of aux regs per cpu.

2017-06-13 Thread Noam Camus
From: Liav Rehana The following commit adds a config that will enable us to distinguish between building the kernel for platforms that have a different set of auxiliary registers for each cpu and platforms that have a shared set of auxiliary registers across every thread in each core. On platform

[PATCH v2 03/12] ARC: send ipi to all cpus sharing task mm in case of page fault

2017-06-13 Thread Noam Camus
From: Noam Camus This patch is derived due to performance issue. The use case is a page fault that resides on more than the local cpu. Trying to broadcast all CPUs results on performance degradation. So we try to avoid this by sending only to the relevant CPUs. Signed-off-by: Noam Camus Reviewe

[PATCH v2 02/12] ARC: set level of log per CPU during boot to be debug level

2017-06-13 Thread Noam Camus
From: Noam Camus The reasons are: 1) speeding up boot time, becomes critical for many CPUs machine, e.g. NPS400 with 4K CPUs 2) shorten kernel log at boot time, again easy to scan for large scale machines such NPS400 Signed-off-by: Noam Camus --- arch/arc/kernel/setup.c |6 +++--- ar