on another machine. It's really interesting if
__always_inline makes things better for aarch64 and worse for x86_64. It
will be nice if someone will check it on x86_64 too.
Very odd, this may be related to the other compiler optimizations Yuri
mentioned?
It's better to ask Yury, i hope he
On Tue, Sep 01, 2015 at 05:04:26PM +0100, Mark Rutland wrote:
> On Tue, Sep 01, 2015 at 03:41:12PM +0100, Yury Norov wrote:
> > Kernel option COMPAT defines the ability of executing aarch32 binaries.
> > Some platforms does not support aarch32 mode, and so cannot execute that
>
On 24.01.2015 03:45, Rasmus Villemoes wrote:
> On Mon, Jan 19 2015, Yury Norov wrote:
>
>> New implementation takes less space, and, I hope, easier to understand.
>>
>> Signed-off-by: Yury Norov
>> ---
>> lib/find_next_bit.c | 265
>> +++-
On 01.04.2015 02:06, Andrew Morton wrote:
On Sun, 29 Mar 2015 05:03:55 +0300 Yury Norov wrote:
Function 'bitmap_empty' has it's own implementation.
But it's clearly as simple as:
"find_first_bit(src, nbits) == nbits"
The same is true for 'bitmap_full
reflect it in your comment.
At second, less minor.
Now that you access list element outside of the lock, why don't you use
'list_empty_careful' instead of 'list_empty'? It may eliminate possible
race between, say, 'list_add' and 'list_empty', a
sbsec->isec_lock);
+ spin_unlock(&sbsec->isec_lock);
+ }
/*
* The inode may still be referenced in a path walk and
Hi Waiman,
If you need my Acked-by, you have it.
BR,
Yury
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a
On 28.07.2015 22:09, Cassidy Burden wrote:
I've tested Yury Norov's find_bit reimplementation with the test_find_bit
module (https://lkml.org/lkml/2015/3/8/141) and measured about 35-40%
performance degradation on arm64 3.18 run with fixed CPU frequency.
The performance degradation
On 29.07.2015 00:23, Yury wrote:
On 28.07.2015 22:09, Cassidy Burden wrote:
I've tested Yury Norov's find_bit reimplementation with the
test_find_bit
module (https://lkml.org/lkml/2015/3/8/141) and measured about 35-40%
performance degradation on arm64 3.18 run with fixed CPU frequ
> Introduce generic kasan_populate_zero_shadow(start, end).
> This function maps kasan_zero_page to the [start, end] addresses.
>
> In follow on patches it will be used for ARMv8 (and maybe other
> architectures) and will replace x86_64 specific populate_zero_shadow().
>
> Signed-off-by: Andrey Ry
On 19.08.2015 11:40, Jens Wiklander wrote:
>
> Adds helpers to do SMC based on ARM SMC Calling Convention.
> CONFIG_HAVE_SMCCC is enabled for architectures that may support
> the SMC instruction. It's the responsibility of the caller to
> know if the SMC instruction is supported by the platform.
>
On 02.02.2015 13:43, Rasmus Villemoes wrote:
> On Sat, Jan 31 2015, yury.no...@gmail.com wrote:
>
>> From: Yury Norov
>>
>> New implementations takes less space in source file (see diffstat)
>> and in object. For me it's 710 vs 453 bytes of text.
>>
&
On 02.02.2015 06:17, George Spelvin wrote:
> Yury Norov wrote:
>> New implementations takes less space in source file (see diffstat)
>> and in object. For me it's 710 vs 453 bytes of text.
>>
>> Patch was boot-tested on x86_64 and MIPS (big-endian) machines.
.
>
> With the proposed change, 4.7 also makes find_next{,_zero}_bit wrappers
> for _find_next_bit, further reducing the total size, which is a good
> thing. And, if some other version decides to still inline it, it
> should then know how to optimize the xor with 0ul or ~0ul just as well
On 09.02.2015 14:53, Rasmus Villemoes wrote:
> [Yury, please do remember to Cc everyone who has previously
> participated]
>
> On Mon, Feb 09 2015, "George Spelvin" wrote:
>
>> Two more comments on the code. Two minor, but one that
>> seems like a bug, so
> Subject: lib/bitmap.c: rewrite __bitmap_parse && __bitmap_parselist
scripts/checkpatch.pl
lib_bitmap.c:-rewrite-__bitmap_parse-__bitmap_parselist.patch
total: 134 errors, 1 warnings, 284 lines checked
NOTE: whitespace errors detected, you may wish to use
scripts/cleanpatch or
On Sat, Jun 18, 2016 at 02:54:23AM +0300, Yury Norov wrote:
> From: Andrew Pinski
>
> Add a separate syscall-table for ILP32, which dispatches either to native
> LP64 system call implementation or to compat-syscalls, as appropriate.
>
> Signed-off-by: Andrew Pinski
> Sign
previous version. It may be removed
if there's no requirement in it anymore.
While we're at this, fix comment that describes return value.
Reported-by: Alexey Klimov
Signed-off-by: Yury Norov
Signed-off-by: Alexey Klimov
---
include/linux/slab.h | 41 +--
From: Andrew Pinski
To support ILP32 without much sources changes, this changes
sysdeps/aarch64/start.S to use the PTR_* macros which was defined
earlier.
* sysdeps/aarch64/start.S: Include sysdep.h
(_start): Use PTR_REG, PTR_SIZE macros.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/start.S
instead of long
and use ARGIFY.
(LOAD_ARGS_2): Likewise.
(LOAD_ARGS_3): Likewise.
(LOAD_ARGS_4): Likewise.
(LOAD_ARGS_5): Likewise.
(LOAD_ARGS_6): Likewise.
(LOAD_ARGS_7): Likewise.
Signed-off-by: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/sysdep.h | 48
1 file
.
* sysdeps/unix/sysv/linux/aarch64/configure.ac: Set arch_minimum_kernel
to 3.19.0 for ILP32.
Set LIBC_SLIBDIR_RTLDDIR to libilp32/lib for ilp32.
* sysdeps/unix/sysv/linux/aarch64/configure: Regenerate.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/configure| 15
LP64 usage and provides common
code between ILP32.
* sysdeps/aarch64/dl-machine.h (RTLD_START): Rename to ...
(RTLD_START_1): This and add PTR, PTR_SIZE_LOG, and PTR_SP arguments.
(RTLD_START): New macro which uses RTLD_START_1.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/crti.S | 3
.
(_dl_tlsdesc_resolve_rela): Likewise.
(_dl_tlsdesc_resolve_hold): Likewise.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/dl-tlsdesc.S | 36 ++--
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
index
From: Andrew Pinski
Just like the other patches, this patch allows for getcontext.S to be used
between ILP32 and LP64.
* sysdeps/unix/sysv/linux/aarch64/getcontext.S: Use PTR_REG when
doing an add so wrapping of the pointer is correct for ILP32.
Signed-off-by: Yury Norov
---
sysdeps/unix
From: Andrew Pinski
Signed-off-by: Andrew Pinski
Signed-off-by: Yury Norov
---
sysdeps/aarch64/bits/wordsize.h | 8 +++-
sysdeps/generic/stdint.h| 9 +++--
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits
From: Andrew Pinski
So that ILP32 is aligned to 64bits.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/nptl/bits/semaphore.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/aarch64/nptl/bits/semaphore.h
b/sysdeps/aarch64/nptl/bits/semaphore.h
index 3cc5b37..3fe6047
7/990
Please review it. Any comments appreciated.
Yury.
Andrew Pinski (24):
[AARCH64] Fix utmp struct for compatibility reasons.
[AARCH64] Add header guards to sysdep.h headers.
Add dynamic ILP32 AARCH64 relocations to elf.h
[AARCH64] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE. Use
From: Andrew Pinski
__WORDSIZE needs to be set to 32 for ILP32.
* sysdeps/aarch64/bits/wordsize.h (__WORDSIZE): Set to 32 for ILP32.
Update comments.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/bits/wordsize.h | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a
From: Yury Norov
ILP32 has 64-bit off_t, to follow modern requirements.
But kernel clears top-halves of input registers. It means
we have to pass corresponding arguments in a pair, like
aarch32 does. In this patch all affected syscalls are redefined.
Most of them are taken from arm code.
Signed
Signed-off-by: Yury Norov
---
sysdeps/aarch64/__longjmp.S | 2 ++
sysdeps/aarch64/dl-tlsdesc.S | 6 ++
sysdeps/aarch64/memcmp.S | 3 +++
sysdeps/aarch64/memcpy.S | 4 +++-
sysdeps/aarch64/memmove.S
resolved at link time for LP64.
* sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Add support
for ILP32.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/dl-machine.h | 18 --
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps
linux/aarch64/ldd-rewrite.sed: New file.
Signed-off-by: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/configure | 2 ++
sysdeps/unix/sysv/linux/aarch64/configure.ac| 2 ++
sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed | 1 +
3 files changed, 5 insertions(+)
create mode 100644 sysdeps
: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h | 79
sysdeps/unix/sysv/linux/sysdep-vdso.h| 4 +-
2 files changed, 81 insertions(+), 2 deletions(-)
create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h
diff --git a/sysdeps/unix
already provided mmap.c file.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/Implies| 6 --
sysdeps/aarch64/ilp32/Implies | 6 ++
sysdeps/aarch64/lp64/Implies | 7 ++
sysdeps/unix/sysv/linux/aarch64/Implies| 2
/sysv/linux/aarch64/kernel_sigaction.h: New file.
* sysdeps/unix/sysv/linux/aarch64/sigaction.c (__libc_sigaction):
Add cast here it is necessary.
Signed-off-by: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h | 12
sysdeps/unix/sysv/linux/aarch64/sigaction.c
From: Andrew Pinski
This patch adds ILP32 ld.so names to the known interpreter names.
* sysdeps/unix/sysv/linux/aarch64/ldconfig.h (SYSDEP_KNOWN_INTERPRETER_NAMES):
Add ilp32 ld.so names.
Signed-off-by: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/ldconfig.h | 2 ++
1 file changed, 2
macro also.
(abi-lp64_be-options): Add defining of LP64 and undef of ILP32 macros.
(abi-lp64_be-condition): Check word size macro also.
(abi-ilp32-options): Define.
(abi-ilp32-condition): Likewise.
(abi-ilp32_be-options): Define.
(abi-ilp32_be-condition): Likewise.
Signed-off-by: Yury Norov
From: Andrew Pinski
Signed-off-by: Yury Norov
---
elf/dl-sysdep.c | 1 +
elf/elf.h | 3 +++
sysdeps/unix/sysv/linux/aarch64/dl-auxv.h | 25 +
sysdeps/unix/sysv/linux/aarch64/dl-sysdep.c | 5 +
4
From: Yury Norov
stat and statfs structures has their layouts identical to lp64
after changing off_t, ino_t etc sizes to 64-bit. It means we can
pass it to kernel same way as lp64 does.
Signed-off-by: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/bits/stat.h| 195
be the FLAG_AARCH64_LIB32 if compiling for ILP32.
(add_system_dir): Add libilp32 to the list of system directories.
* sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file):
Handle ILP32 elf binaries.
Signed-off-by: Yury Norov
---
elf/cache.c| 2 ++
sysdeps
This patch is out of series. I sent it erroneously. Please ignore it.
On Tue, Jun 21, 2016 at 08:06:45AM +0300, Yury Norov wrote:
> Signed-off-by: Yury Norov
> ---
> sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c | 31
> ++
> .../unix/sysv/linux/aarch64/il
/bits/wordsize.h: New file.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/bits/wordsize.h | 26 ++
1 file changed, 26 insertions(+)
create mode 100644 sysdeps/aarch64/bits/wordsize.h
diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h
new file
): Likewise.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/dl-irel.h| 3 ++-
sysdeps/aarch64/dl-machine.h | 53 +++-
sysdeps/aarch64/sysdep.h | 6 +
3 files changed, 36 insertions(+), 26 deletions(-)
diff --git a/sysdeps/aarch64/dl-irel.h b
): Update
R_AARCH64_TLS_DTPMOD64, R_AARCH64_TLS_DTPREL64, and R_AARCH64_TLS_TPREL64.
(elf_machine_rela): Likewise.
[AARCH64] Fix pltenter and pltexit for ILP32.
* sysdeps/aarch64/bits/link.h (la_aarch64_gnu_pltenter): Use
ElfW macro instead of hardcoded Elf64 types.
Signed-off-by: Yury Norov
Signed-off-by: Yury Norov
---
sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c | 31 ++
.../unix/sysv/linux/aarch64/ilp32/fallocate64.c| 1 +
sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate.c | 1 +
.../unix/sysv/linux/aarch64/ilp32/ftruncate64.c| 4 +++
sysdeps
PTR_DEMANGLE.
* sysdeps/aarch64/setjmp.S (__sigsetjmp): Update calls to PTR_MANGLE.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/__longjmp.S | 4 ++--
sysdeps/aarch64/setjmp.S | 4 ++--
sysdeps/aarch64/sysdep.h | 28
.
(_dl_runtime_resolve): Use PTR_REG, PTR_SIZE.
(_dl_runtime_profile): Likewise. Use RELA_SIZE and ip0l.
Signed-off-by: Yury Norov
---
sysdeps/aarch64/dl-trampoline.S | 18 +++---
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl
From: Andrew Pinski
Signed-off-by: Yury Norov
---
sysdeps/aarch64/jmpbuf-unwind.h | 2 +-
sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h | 2 +-
sysdeps/unix/sysv/linux/generic/brk.c| 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sysdeps
On Tue, Jun 21, 2016 at 09:54:47AM +0200, Andreas Schwab wrote:
> Yury Norov writes:
>
> > diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
> > index 4cb028f..f2ea821 100644
> > --- a/sysdeps/aarch64/sysdep.h
> > +++ b/sysdeps/aarch64
lower 32bits of u64 which is wrong. Proposed fix is to swap the words
> of the u64 to handle this case. This is _not_ endianess swap.
>
> Suggested-by: Yury Norov
> Cc: Yury Norov
> Cc: Peter Zijlstra
> Cc: Ingo Molnar
> Cc: Arnaldo Carvalho de Melo
> Cc: Alexander Shishk
On Tue, Jun 21, 2016 at 02:52:37PM -0700, Andrew Morton wrote:
> On Tue, 21 Jun 2016 02:33:06 +0300 Yury Norov wrote:
>
> > kmalloc_index() uses simple straightforward way to calculate
> > bit position of nearest or equal upper power of 2.
> > This effectively res
for (i = 0; i < argc; ++i)
> if (i < 8)
> - ucp->uc_mcontext.regs[i] = va_arg (ap, unsigned long int);
> + ucp->uc_mcontext.regs[i] = va_arg (ap, unsigned long long);
> else
> - sp[i - 8] = va_arg (ap, unsigned long int);
> + s
On Tue, Jun 21, 2016 at 10:28:40AM +, Joseph Myers wrote:
> On Tue, 21 Jun 2016, Yury Norov wrote:
>
> > +#ifdef __LP64__
> > +#define RTLD_START RTLD_START_1("x", "3", "sp")
> > +#else
> > +#define RTLD_START RTLD_START_1("w&q
quot;__kernel_clock_gettime", &linux);
>PTR_MANGLE (p);
>VDSO_SYMBOL(clock_gettime) = p;
>
> - p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2639);
> + p = _dl_vdso_vsym ("__kernel_clock_getres", &linux);
>PTR_MANGLE (p);
>VDSO_
compat_sys_mmap2_wrapper
> > #define sys_ptrace compat_sys_ptrace
> >
>
> Looks good to me.
>
> Arnd
Thank you. I'll take it.
Yury.
On Mon, Jun 19, 2017 at 05:16:42PM +0100, James Morse wrote:
> Hi Yury,
>
> On 04/06/17 13:00, Yury Norov wrote:
> > Signed-off-by: Yury Norov
>
> Can I offer a body for the commit message:
> ILP32 needs to mix 32bit struct siginfo and 64bit sigframe for its signal
>
On Mon, Jun 19, 2017 at 01:58:53PM -0700, Florian Fainelli wrote:
> On 06/18/2017 04:51 PM, Yury Norov wrote:
> > Hi Florian,
> >
> > Some questions and thoughts inline.
> >
> > Yury
> >
> > On Fri, Jun 16, 2017 at 05:07:42PM -0700, Floria
On Mon, Jun 19, 2017 at 06:43:48PM +0100, Russell King - ARM Linux wrote:
> On Mon, Jun 19, 2017 at 06:18:18PM +0300, Yury Norov wrote:
> > One else thing I forgot to ask - now you have the generic
> > implementation for fncpy(), so do you really need to save arm
> > version
On Mon, Jun 19, 2017 at 04:58:16PM +0100, James Morse wrote:
> Hi Yury,
>
> On 04/06/17 12:59, Yury Norov wrote:
> > From: Andrew Pinski
> >
> > In this patchset ILP32 ABI support is added. Additionally to AARCH32,
> > which is binary-compatible with ARM,
On Wed, Jun 21, 2017 at 02:10:03AM +0300, Yury Norov wrote:
> On Mon, Jun 19, 2017 at 04:58:16PM +0100, James Morse wrote:
> > Hi Yury,
[...]
> > This is confusing as 'is_compat_task()' matches one of aarch32 or ilp32, but
> > compat_user_mode(regs) only matches
m_smmuv3_pmu.c
I try to run your driver on ThunderX2, but perf list doesn't show new
events, and example in description in patch 2 also doesn't work:
yury@VAL1-25:~/linux$ tools/perf/perf stat -e
smmu_0_ff88840/transaction,filter_enable=1,
filter
; : "+rm"(src1p)); // prevent any optimization
> asm volatile("" : "+rm"(src2p));
> unsigned long result = cpumask_next_and(n, src1p, src2p);
> asm volatile("" : "+rm"(result));
> }
> }
> ```
> Signed-of
On Wed, Oct 25, 2017 at 05:28:41PM +0200, Clement Courbet wrote:
> Thanks for the comments Yury.
>
> > But I'd like also to keep _find_next_bit() consistent with
> > _find_next_bit_le()
>
> Not sure I understand what you're suggesting here: Do you want a
>
On Wed, Oct 25, 2017 at 06:50:14PM +0300, Yury Norov wrote:
> On Wed, Oct 25, 2017 at 05:28:41PM +0200, Clement Courbet wrote:
> > Thanks for the comments Yury.
> >
> > > But I'd like also to keep _find_next_bit() consistent with
> > > _find_next_bit_le
t, which lets us use
> '%llu' everywhere.
>
> Fixes: 09588b1f1d58 ("lib: test module for find_*_bit() functions")
> Signed-off-by: Arnd Bergmann
Hi Arnd,
patch looks OK. Thank you.
Acked-by: Yury Norov
Hi Alexey, Andrew,
Thanks for comments.
On Fri, Nov 10, 2017 at 12:45:18PM +0200, Alexey Dobriyan wrote:
> On 11/10/17, Andrew Morton wrote:
> > On Thu, 9 Nov 2017 17:07:14 +0300 Yury Norov
> > wrote:
> >
> >> find_bit functions are widely used in the kernel,
Hi Michael,
On Sun, Nov 12, 2017 at 10:33:55PM +1100, Michael Ellerman wrote:
> Yury Norov writes:
>
> > find_bit functions are widely used in the kernel, including hot paths.
> > This module tests performance of that functions in 2 typical scenarios:
> > randomly fille
no ideas, I can bisect it later.
Yury
config.next.gz
Description: application/gzip
as similar issue;
- if ld.gold understands some synonyms like -mabi=lp64, it should be
passed to LDFLAGS here;
- if ld.gold can link only lp64 objects, it should be commented here.
But in this case I don't understand for example how to build vdso
for ilp32 userspace...
Thanks,
Yury
iterations
CC: Alexey Dobriyan
CC: Andrew Morton
CC: Clement Courbet
CC: Matthew Wilcox
CC: Rasmus Villemoes
Signed-off-by: Yury Norov
---
lib/Kconfig.debug| 9
lib/Makefile | 1 +
lib/find_bit.c | 2 +-
lib/test_find_bit.c | 141
On Thu, Oct 26, 2017 at 02:58:00PM +0200, Alexey Dobriyan wrote:
> > - Refactored _find_next_common_bit into _find_next_bit., as suggested
> >by Yury Norov. This has no adverse effects on the performance side,
> >as the compiler successfully inlines the code.
>
>
tion, you're screwed anyway, and should fix
your program.
The real problem here is not "line too long", but "indentation level too
big" - 5. And it worth to address real problem.
Yury
On Sun, Oct 29, 2017 at 06:54:09PM +0300, Yury Norov wrote:
> Hi Kien,
>
> On Sat, Oct 28, 2017 at 10:46:13PM -0400, Kien Ha wrote:
> > >From fc52a98aca0c033f2c03fdc7e8f83ae49625675a Mon Sep 17 00:00:00 2001
> > From: Kien Ha
> > Date: Fri, 27 Oct 2017 14:07:55
On Sun, Oct 29, 2017 at 10:28:27AM -0700, Joe Perches wrote:
> On Sun, 2017-10-29 at 18:54 +0300, Yury Norov wrote:
> > At second, and most important, refer Documentation/process/coding-style.rst:
> > Now, some people will claim that having 8-character indentations makes
> >
ion of it, if you have one?
Are there any special commands or configure options needed
to enable ILP32 properly?
BR,
Yury.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.k
On Tue, Oct 06, 2015 at 12:21:33PM +0300, Andrey Konovalov wrote:
> Hi Yury,
>
> With this patch set 4.3 kernel fails to build with
> arch/arm64/configs/defconfig plus CONFIG_AARCH32_EL0=y
> and CONFIG_ARM64_ILP32=y giving the following three errors (the 3d one is
>
f one applies second patch only.
Second patch adds run-time detection of aarch32 support, and rejects kernel to
load such binaries, if not supported.
Tested on ThunderX.
Signed-off-by: Yury Norov
Yury Norov (2):
arm64: cpufeature.h: resolve hidden header dependencies
arm64: don't load 32-bi
Functions implemented in cpufeature.h depend on some headers, but
cpufeature.h does not include them. This may cause build failure if
cpufeature.h user does not include that headers by itself. (Like it
happens in next patch of this series.)
Signed-off-by: Yury Norov
---
arch/arm64/include/asm
, system_supports_aarch32_el0() is introduced to detect
aarch32 support at run-time.
Signed-off-by: Yury Norov
---
arch/arm64/include/asm/cpufeature.h | 1 +
arch/arm64/include/asm/elf.h| 6 --
arch/arm64/kernel/cpuinfo.c | 9 +
3 files changed, 14 insertions(+), 2 deletions(-)
diff
guard.
- check that all CPUs support AArch32, not the current only,
the same way as for endianness support.
Signed-off-by: Yury Norov
Yury Norov (2):
arm64: cpufeature.h: resolve hidden header dependencies
arm64: don't load 32-bit binaries if platform has no aarch32_el0
arch/arm64/i
, system_supports_aarch32_el0() is introduced to detect
aarch32 support at run-time.
Signed-off-by: Yury Norov
---
arch/arm64/include/asm/cpufeature.h | 1 +
arch/arm64/include/asm/cputype.h| 8
arch/arm64/include/asm/elf.h| 6 --
arch/arm64/kernel/cpuinfo.c | 12
4
Functions implemented in cpufeature.h depend on some headers, but
cpufeature.h does not include them. This may cause build failure if
cpufeature.h user does not include that headers by itself. (Like it
happens in next patch of this series.)
Signed-off-by: Yury Norov
---
arch/arm64/include/asm
On Wed, Sep 02, 2015 at 04:15:52PM +0200, Ard Biesheuvel wrote:
> On 2 September 2015 at 16:00, Yury Norov wrote:
> > Kernel option COMPAT defines the ability of executing aarch32 binaries.
> > Some platforms does not support aarch32 mode, and so cannot execute that
> > bi
BLY__" guard as
it depends on , and can be used in C files only.
Signed-off-by: Yury Norov
Reviewed-by: Mark Rutland
---
arch/arm64/include/asm/cpufeature.h | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/cpufeature.h
b/arch/arm64/i
ng in id_aa64pfr0_aarch32_el0().
V2:
- add missing for the __attribute_const__ on
cpuid_feature_extract_field;
- move cpu_feature macro under the __ASSEMBLY__ guard.
- check that all CPUs support AArch32, not the current only,
the same way as for endianness support.
Signed-off-by: Yury Norov
Yury
, system_supports_aarch32_el0() is introduced to detect
aarch32 support at run-time.
Signed-off-by: Yury Norov
---
arch/arm64/include/asm/cpufeature.h | 1 +
arch/arm64/include/asm/cputype.h| 9 +
arch/arm64/include/asm/elf.h| 6 --
arch/arm64/kernel/cpuinfo.c | 12
4
s sort will grow,
it may become a trouble on large-scale SOCs. The fix is trivial,
though: do system-wide marker update conditionally, and preserve
corresponding cache line in shared state for all update() calls,
except, probably, one.
Signed-off-by: Yury Norov
---
arch/arm64/kernel/cpuinfo.c | 6 ++
On Fri, Sep 04, 2015 at 05:40:57PM +0100, Suzuki K. Poulose wrote:
> On 04/09/15 17:04, Yury Norov wrote:
> >This patch is on top of https://lkml.org/lkml/2015/9/2/413
> >
> >In master, there's only a single function -
> > update_mixed_endian_el0_support
>
On Wed, Sep 30, 2015 at 11:19:19AM +0100, Catalin Marinas wrote:
> On Wed, Sep 30, 2015 at 01:13:57AM +0300, Yury Norov wrote:
> > V5 reincarnation for ILP32.
> >
> > This is mostly the same code as Andrew suggested in v3:
> > https://lkml.org/lkml/2014/9/3/
On Wed, Sep 30, 2015 at 05:41:03PM +0100, Mark Brown wrote:
> On Wed, Sep 30, 2015 at 11:19:19AM +0100, Catalin Marinas wrote:
> > On Wed, Sep 30, 2015 at 01:13:57AM +0300, Yury Norov wrote:
>
> > > - What for ILP32 on ARM64?
> > > See https://lkml.org/lkml/
On Tue, Sep 29, 2015 at 11:06:13PM -0500, Nathan Lynch wrote:
> On 09/29/2015 05:14 PM, Yury Norov wrote:
> > From: Philipp Tomsich
> >
> > Adjusted to move the move data page before code pages in sync with
> > commit 601255ae3c98fd3a8bb4696425e4f868b4f1
>
&g
has name bitmap_zalloc instead of bitmap_alloc. This series:
https://lkml.org/lkml/2018/6/18/841
introduces new API for bitmap allocations in kernel, and functions
there are named correctly. Following patch propogates the API to tools,
and fixes naming issue.
Signed-off-by: Yury Norov
---
tools
ly in fail path.
memory_node__read();
Signed-off-by: Yury Norov
---
tools/include/linux/bitmap.h | 19 +++
tools/perf/builtin-c2c.c | 10 +-
tools/perf/tests/bitmap.c| 4 ++--
tools/perf/tests/mem2node.c | 4 ++--
tools/perf/util/header.c | 6 +++---
5 files changed
On Sun, Jun 24, 2018 at 02:31:03PM -0700, Dmitry Torokhov wrote:
> External Email
>
> On Sat, Jun 23, 2018 at 10:35:02AM +0300, Yury Norov wrote:
> > On top of next-20180622 and Andy Shevchenko series:
> > https://lkml.org/lkml/2018/6/18/841
> >
> > The series m
change nothing here.
Yury
> Signed-off-by: Wei Wang
> Cc: Andrew Morton
> Cc: Rasmus Villemoes
> Cc: Yury Norov
> ---
> include/linux/bitmap.h | 5 -
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/bitmap.h b/include/linux/bitmap.
On Thu, Jul 26, 2018 at 06:15:59PM +0800, Wei Wang wrote:
> External Email
>
> On 07/26/2018 05:37 PM, Yury Norov wrote:
> > On Thu, Jul 26, 2018 at 04:07:51PM +0800, Wei Wang wrote:
> > > The existing BITMAP_LAST_WORD_MASK macro returns 0x if nbits is
> &g
On Mon, Jul 16, 2018 at 05:31:10PM +0200, Frederic Weisbecker wrote:
> External Email
>
> On Thu, Jul 12, 2018 at 09:19:22PM +0300, Yury Norov wrote:
> > IIUC, tick_nohz_full_kick_cpu() is intended to wakeup idle CPUs
> > that will not be poked by scheduler because they are a
On Sat, Jun 23, 2018 at 10:35:01AM +0300, Yury Norov wrote:
> On top of next-20180622.
>
> bitmap_zero() is called after bitmap_alloc() in perf code. But
> bitmap_alloc() internally uses calloc() which guarantees that allocated
> area is zeroed. So following bitmap_zero is un
ormal (i.e. not nohz_full) CPUs, at next reschedule.
[1] https://lkml.org/lkml/2017/11/3/589
Signed-off-by: Yury Norov
---
kernel/time/tick-sched.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index c026145eba2f..1c24c70
x21, x22, [sp, #32]
a4: a8c57bfdldp x29, x30, [sp], #80
a8: d65f03c0ret
I tested LE kernel with this, and it works OK for me. BE version adds
few extra instructions to swap bytes, but generated code looks reasonable.
We can avoid byteswapping, if not needed, by using __r
Architectures like arm64 support 128-bit integer types and
operations. This patch introduces corresponding types and
__swab128() operation for be/le conversions.
They are required to implement 128-bit access to the memory,
in following patches.
Signed-off-by: Yury Norov
---
include/linux
1 - 100 of 1146 matches
Mail list logo