All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhangjian (Bamvor)" <bamvor.zhangjian@huawei.com>
To: Yury Norov <ynorov@caviumnetworks.com>, Andreas Schwab <schwab@suse.de>
Cc: <arnd@arndb.de>, <catalin.marinas@arm.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <pinskia@gmail.com>,
	<Prasun.Kapoor@caviumnetworks.com>, <broonie@kernel.org>,
	<heiko.carstens@de.ibm.com>, <agraf@suse.de>,
	<klimov.linux@gmail.com>, <jan.dakinevich@gmail.com>,
	<schwidefsky@de.ibm.com>, <Nathan_Lynch@mentor.com>,
	<joseph@codesourcery.com>,
	<christoph.muellner@theobroma-systems.com>,
	"Zhangjian (Bamvor)" <bamvor.zhangjian@huawei.com>,
	Bamvor Zhang Jian <bamvor.zhangjian@linaro.org>
Subject: Re: [RFC5 PATCH v6 00/21] ILP32 for ARM64
Date: Fri, 18 Mar 2016 18:28:29 +0800	[thread overview]
Message-ID: <56EBD84D.2060009@huawei.com> (raw)
In-Reply-To: <20160225202855.GD16123@yury-N73SV>

Hi, Yury

We are trying to test ilp32 in our arm64 board. But we got more
failure compare with you. So, I am wondering if we could align
the test environment with you. The source code we used:

1.  glibc: the new-api branch of glibc from
     git@code.huawei.com:gnu/norov_glibc.git.

2.  Kernel: rfc5 from https://github.com/norov/linux.git. Is the
     rc6 in your branch is the latest one? From the commit message, I
     do not find any difference. Is it just a rebase?

3.  Toolchain 4.9.3, could you provide the binary of toolchain(both
     cross and native, gcc, gdb...)? It may be very useful for me or
     other guys who interested build their own filesystem from
     buildroot or something.

4.  LTP: master.

For the glibc part, I found that there are 11 patches of ilp32 in top,
but the original 28 patches of ilp32 is not in the top, there are more
than 900 patches between them(referece the list below). Are you
willing rebase all the ilp32 relative patches. It is very useful for
reviewing and debugging.  I saw andrew request the account in glibc,
maybe it has already been in processs?).

Regards

Bamvor

ILP32 relative patch in norov's glibc:
       1 b5c4968 fix stat
       2 8332b7a fix3
       3 d16a202 fix statfs
       4 351b872 fix IPC_64 for msgctl semctl shmctl
       5 07f8ead fix readdir ????
       6 4be481a fix lseek
       7 4231518 fix getdents
       8 de55857 fstat fix
       9 5d42904 stat
      10 3f70665 mmap, stat syscalls
      11 574af33 Make ilp32 use the compat (old 32bit ABI).

     972 8addb06 [AARCH64] Make lp64 and ilp32 directories.
     973 bfe0619 [AARCH64] Add typesizes.h for ILP32
     974 916581b [AARCH64] Fix up ucontext for ILP32
     975 0f646ee [AARCH64] Add sigstack.h header for ILP32 reasons.
     976 68e11d8 [AARCH64] Add kernel_sigaction.h for AARCH64 ILP32
     977 a0087ba [AARCH64] Add ldd-rewrite.sed so that ilp32 ld.so can be found
     978 0f800d9 [AARCH64] Add ILP32 ld.so to the known interpreter names.
     979 45d74fd [AARCH64] Add support to ldconfig for ILP32 and libilp32
     980 9926da9 [AARCH64] Add ILP32 to makefiles
     981 987b522 [AARCH64] Set up wordsize for ILP32.
     982 5e34e4c [AARCH64] Add ILP32 support to elf_machine_load_address.
     983 1ff4dd9 [AARCH64] Reformat inline-asm in elf_machine_load_address.
     984 f7ff9aa [AARCH64] Syscalls for ILP32 are passed always via 64bit values.
     985 9316667 [AARCH64] Detect ILP32 in configure scripts.
     986 ff0dca1 [AARCH64] Use PTR_REG in getcontext.S.
     987 7c9f1b0 [AARCH64] Use PTR_* in start.S
     988 ed747ff [AARCH64] Use PTR_* macros in dl-trampoline.S
     989 71f6986 [AARCH64] Use PTR_REG/PTR_SIZE/PTR_SIZE_LOG in dl-tlsesc.S
     990 3294b6f [AARCH64] Use PTR_REG in crti.S.
     991 c8fef18 [AARCH64] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE.  Use it in LDST_PCREL and LDST_GLOBAL.
     992 585197d Add dynamic ILP32 AARCH64 relocations to elf.h
     993 49f1345 [AARCH64] Add header guards to sysdep.h headers.
     994 2594068 Allow generic stat and statfs not have padding for 32bit targets
     995 86f0aa7 Allow some fields of siginfo to be different from the generic one
     996 fdffbc5 Allow fd_mask type not be an array of long.
     997 453987a Allow rusage work on a big-endian 32bit-on-64bit target
     998 70e6485 Add ability for the IPC structures (msqid_ds, semid_ds, shmid_ds, etc.) to have time_t being 64bit
     999 9ff1730 Allow sigset be an array of a different type
    1000 dc09040 [AARCH64] Fix utmp struct for compatibility reasons.


On 2016/2/26 4:28, Yury Norov wrote:
> On Thu, Feb 25, 2016 at 11:50:31AM +0100, Andreas Schwab wrote:
>> Yury Norov <ynorov@caviumnetworks.com> writes:
>>
>>> I have new glibc that follows new ABI:
>>> https://github.com/norov/glibc/tree/new-api
>>
>> sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c is wrong, struct
>> dirent64 is not the same as struct dirent.  The file needs to be renamed
>> to sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c so that __getdents64
>> comes from sysdeps/unix/sysv/linux/generic/getdents64.c.
>>
>> sysdeps/unix/sysv/linux/aarch64/ilp32/*xstat*.c should not set errno,
>> INLINE_SYSCALL already does that, and returns -1 on error.
>>
>> Andreas.
>>
>
> Thank you. I'll fix it
>
>> --
>> Andreas Schwab, SUSE Labs, schwab@suse.de
>> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
>> "And now for something completely different."

WARNING: multiple messages have this Message-ID (diff)
From: bamvor.zhangjian@huawei.com (Zhangjian (Bamvor))
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC5 PATCH v6 00/21] ILP32 for ARM64
Date: Fri, 18 Mar 2016 18:28:29 +0800	[thread overview]
Message-ID: <56EBD84D.2060009@huawei.com> (raw)
In-Reply-To: <20160225202855.GD16123@yury-N73SV>

Hi, Yury

We are trying to test ilp32 in our arm64 board. But we got more
failure compare with you. So, I am wondering if we could align
the test environment with you. The source code we used:

1.  glibc: the new-api branch of glibc from
     git at code.huawei.com:gnu/norov_glibc.git.

2.  Kernel: rfc5 from https://github.com/norov/linux.git. Is the
     rc6 in your branch is the latest one? From the commit message, I
     do not find any difference. Is it just a rebase?

3.  Toolchain 4.9.3, could you provide the binary of toolchain(both
     cross and native, gcc, gdb...)? It may be very useful for me or
     other guys who interested build their own filesystem from
     buildroot or something.

4.  LTP: master.

For the glibc part, I found that there are 11 patches of ilp32 in top,
but the original 28 patches of ilp32 is not in the top, there are more
than 900 patches between them(referece the list below). Are you
willing rebase all the ilp32 relative patches. It is very useful for
reviewing and debugging.  I saw andrew request the account in glibc,
maybe it has already been in processs?).

Regards

Bamvor

ILP32 relative patch in norov's glibc:
       1 b5c4968 fix stat
       2 8332b7a fix3
       3 d16a202 fix statfs
       4 351b872 fix IPC_64 for msgctl semctl shmctl
       5 07f8ead fix readdir ????
       6 4be481a fix lseek
       7 4231518 fix getdents
       8 de55857 fstat fix
       9 5d42904 stat
      10 3f70665 mmap, stat syscalls
      11 574af33 Make ilp32 use the compat (old 32bit ABI).

     972 8addb06 [AARCH64] Make lp64 and ilp32 directories.
     973 bfe0619 [AARCH64] Add typesizes.h for ILP32
     974 916581b [AARCH64] Fix up ucontext for ILP32
     975 0f646ee [AARCH64] Add sigstack.h header for ILP32 reasons.
     976 68e11d8 [AARCH64] Add kernel_sigaction.h for AARCH64 ILP32
     977 a0087ba [AARCH64] Add ldd-rewrite.sed so that ilp32 ld.so can be found
     978 0f800d9 [AARCH64] Add ILP32 ld.so to the known interpreter names.
     979 45d74fd [AARCH64] Add support to ldconfig for ILP32 and libilp32
     980 9926da9 [AARCH64] Add ILP32 to makefiles
     981 987b522 [AARCH64] Set up wordsize for ILP32.
     982 5e34e4c [AARCH64] Add ILP32 support to elf_machine_load_address.
     983 1ff4dd9 [AARCH64] Reformat inline-asm in elf_machine_load_address.
     984 f7ff9aa [AARCH64] Syscalls for ILP32 are passed always via 64bit values.
     985 9316667 [AARCH64] Detect ILP32 in configure scripts.
     986 ff0dca1 [AARCH64] Use PTR_REG in getcontext.S.
     987 7c9f1b0 [AARCH64] Use PTR_* in start.S
     988 ed747ff [AARCH64] Use PTR_* macros in dl-trampoline.S
     989 71f6986 [AARCH64] Use PTR_REG/PTR_SIZE/PTR_SIZE_LOG in dl-tlsesc.S
     990 3294b6f [AARCH64] Use PTR_REG in crti.S.
     991 c8fef18 [AARCH64] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE.  Use it in LDST_PCREL and LDST_GLOBAL.
     992 585197d Add dynamic ILP32 AARCH64 relocations to elf.h
     993 49f1345 [AARCH64] Add header guards to sysdep.h headers.
     994 2594068 Allow generic stat and statfs not have padding for 32bit targets
     995 86f0aa7 Allow some fields of siginfo to be different from the generic one
     996 fdffbc5 Allow fd_mask type not be an array of long.
     997 453987a Allow rusage work on a big-endian 32bit-on-64bit target
     998 70e6485 Add ability for the IPC structures (msqid_ds, semid_ds, shmid_ds, etc.) to have time_t being 64bit
     999 9ff1730 Allow sigset be an array of a different type
    1000 dc09040 [AARCH64] Fix utmp struct for compatibility reasons.


On 2016/2/26 4:28, Yury Norov wrote:
> On Thu, Feb 25, 2016 at 11:50:31AM +0100, Andreas Schwab wrote:
>> Yury Norov <ynorov@caviumnetworks.com> writes:
>>
>>> I have new glibc that follows new ABI:
>>> https://github.com/norov/glibc/tree/new-api
>>
>> sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c is wrong, struct
>> dirent64 is not the same as struct dirent.  The file needs to be renamed
>> to sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c so that __getdents64
>> comes from sysdeps/unix/sysv/linux/generic/getdents64.c.
>>
>> sysdeps/unix/sysv/linux/aarch64/ilp32/*xstat*.c should not set errno,
>> INLINE_SYSCALL already does that, and returns -1 on error.
>>
>> Andreas.
>>
>
> Thank you. I'll fix it
>
>> --
>> Andreas Schwab, SUSE Labs, schwab at suse.de
>> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
>> "And now for something completely different."

  reply	other threads:[~2016-03-18 10:37 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-14 17:22 [RFC5 PATCH v6 00/21] ILP32 for ARM64 Yury Norov
2016-01-14 17:22 ` Yury Norov
2016-01-14 17:22 ` [PATCH v6 01/21] arm64: ilp32: add documentation on the ILP32 ABI " Yury Norov
2016-01-14 17:22   ` Yury Norov
2016-01-14 17:22 ` [PATCH v6 02/21] arm64: ensure the kernel is compiled for LP64 Yury Norov
2016-01-14 17:22   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 03/21] arm64: rename COMPAT to AARCH32_EL0 in Kconfig Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 04/21] arm64: change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0 instead Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 05/21] arm64: compat: change config dependences to aarch32 Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 06/21] arm64:uapi: set __BITS_PER_LONG correctly for ILP32 and LP64 Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 07/21] thread: move thread bits accessors to separated file Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 08/21] arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat) Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 09/21] arm64: ilp32: add is_ilp32_compat_{task,thread} and TIF_32BIT_AARCH64 Yury Norov
2016-01-14 17:23   ` [PATCH v6 09/21] arm64: ilp32: add is_ilp32_compat_{task, thread} " Yury Norov
2016-01-14 17:23 ` [PATCH v6 10/21] arm64: introduce binfmt_elf32.c Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 11/21] arm64: ilp32: introduce binfmt_ilp32.c Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 12/21] arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32 Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 13/21] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 14/21] arm64: signal: wrap struct ucontext, fp and lr with struct sigframe Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 15/21] arm64: signal: share lp64 signal routines to ilp32 Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 16/21] arm64: signal32: move ilp32 and aarch32 common code to separated file Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 17/21] arm64: ilp32: introduce ilp32-specific handlers for sigframe Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-02-29  8:27   ` Andreas Schwab
2016-02-29  8:27     ` Andreas Schwab
2016-01-14 17:23 ` [PATCH v6 18/21] arm64:ilp32: add vdso-ilp32 and use for signal return Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 19/21] arm64:ilp32: add ARM64_ILP32 to Kconfig Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 20/21] all: s390: make compat wrappers the generic solution Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-14 18:11   ` Yury Norov
2016-01-14 18:11     ` Yury Norov
2016-01-15 12:46   ` Heiko Carstens
2016-01-15 12:46     ` Heiko Carstens
2016-01-19 17:52     ` Yury Norov
2016-01-20  8:16       ` Heiko Carstens
2016-01-20  8:16         ` Heiko Carstens
2016-01-20 12:17         ` Yury Norov
2016-01-20 12:17           ` Yury Norov
2016-01-14 17:23 ` [PATCH v6 21/21] arm64: ilp32: wrap syscalls to remove top 32-bit vulnerability Yury Norov
2016-01-14 17:23   ` Yury Norov
2016-01-18 13:18 ` [RFC5 PATCH v6 00/21] ILP32 for ARM64 Zhangjian (Bamvor)
2016-01-18 13:18   ` Zhangjian (Bamvor)
2016-01-18 13:26   ` Andreas Schwab
2016-01-18 13:26     ` Andreas Schwab
2016-01-18 13:41     ` Bamvor Zhang Jian
2016-01-18 13:41       ` Bamvor Zhang Jian
2016-01-29  9:59 ` Zhangjian (Bamvor)
2016-01-29  9:59   ` Zhangjian (Bamvor)
2016-01-29 17:09   ` Yury Norov
2016-01-29 17:09     ` Yury Norov
2016-01-30  4:15     ` Zhangjian (Bamvor)
2016-01-30  4:15       ` Zhangjian (Bamvor)
2016-02-18 22:35       ` Yury Norov
2016-02-18 22:35         ` Yury Norov
2016-02-19  8:23         ` Arnd Bergmann
2016-02-19  8:23           ` Arnd Bergmann
2016-02-19 12:59           ` Yury Norov
2016-02-19 12:59             ` Yury Norov
2016-02-19 14:06             ` Arnd Bergmann
2016-02-19 14:06               ` Arnd Bergmann
2016-02-29 15:39           ` Yury Norov
2016-02-29 15:39             ` Yury Norov
2016-02-29 16:00           ` Andreas Schwab
2016-02-29 16:00             ` Andreas Schwab
2016-02-29 16:30             ` Arnd Bergmann
2016-02-29 16:30               ` Arnd Bergmann
2016-02-25 10:50         ` Andreas Schwab
2016-02-25 10:50           ` Andreas Schwab
2016-02-25 20:28           ` Yury Norov
2016-02-25 20:28             ` Yury Norov
2016-03-18 10:28             ` Zhangjian (Bamvor) [this message]
2016-03-18 10:28               ` Zhangjian (Bamvor)
2016-03-18 15:49               ` Yury Norov
2016-03-18 15:49                 ` Yury Norov
2016-03-18 15:55                 ` Alexander Graf
2016-03-18 15:55                   ` Alexander Graf
2016-03-18 16:46                   ` Yury Norov
2016-03-18 16:46                     ` Yury Norov
2016-03-20  8:12                     ` Zhangjian (Bamvor)
2016-03-20  8:12                       ` Zhangjian (Bamvor)
2016-03-21 11:23                       ` Zhangjian (Bamvor)
2016-03-21 11:23                         ` Zhangjian (Bamvor)
2016-03-21 18:43                         ` Yury Norov
2016-03-21 18:43                           ` Yury Norov
2016-03-22  1:49                           ` Yury Norov
2016-03-22  1:49                             ` Yury Norov
2016-03-21  9:07                 ` Andreas Schwab
2016-03-21  9:07                   ` Andreas Schwab
2016-03-21  9:43                   ` Arnd Bergmann
2016-03-21  9:43                     ` Arnd Bergmann
2016-03-21 10:52                     ` Andreas Schwab
2016-03-21 10:52                       ` Andreas Schwab
2016-03-21 17:02                       ` Arnd Bergmann
2016-03-21 17:02                         ` Arnd Bergmann
2016-03-26 12:36                     ` Zhangjian (Bamvor)
2016-03-26 12:36                       ` Zhangjian (Bamvor)
2016-03-29 10:58                       ` Arnd Bergmann
2016-03-29 10:58                         ` Arnd Bergmann
2016-03-29 12:01                         ` Yury Norov
2016-03-29 12:01                           ` Yury Norov
2016-03-29 12:42                           ` Arnd Bergmann
2016-03-29 12:42                             ` Arnd Bergmann
2016-03-29 13:21                           ` Zhangjian (Bamvor)
2016-03-29 13:21                             ` Zhangjian (Bamvor)
2016-03-29 13:27                             ` Arnd Bergmann
2016-03-29 13:27                               ` Arnd Bergmann
2016-03-29 15:54                               ` Joseph Myers
2016-03-29 15:54                                 ` Joseph Myers
2016-03-29 19:30                                 ` Arnd Bergmann
2016-03-29 19:30                                   ` Arnd Bergmann
2016-03-29 20:15                                   ` Joseph Myers
2016-03-29 20:15                                     ` Joseph Myers
2016-03-29 20:24                                     ` Arnd Bergmann
2016-03-29 20:24                                       ` Arnd Bergmann
2016-03-29 21:00                                       ` Joseph Myers
2016-03-29 21:00                                         ` Joseph Myers
2016-03-29 21:39                                         ` Arnd Bergmann
2016-03-29 21:39                                           ` Arnd Bergmann
2016-03-31  7:35                               ` Zhangjian (Bamvor)
2016-03-31  7:35                                 ` Zhangjian (Bamvor)
2016-03-21 18:40                   ` Yury Norov
2016-03-21 18:40                     ` Yury Norov
2016-03-26 13:08                     ` Zhangjian (Bamvor)
2016-03-26 13:08                       ` Zhangjian (Bamvor)
2016-03-26 13:45                     ` Zhangjian (Bamvor)
2016-03-26 13:45                       ` Zhangjian (Bamvor)
2016-03-26 22:46                       ` Yury Norov
2016-03-26 22:46                         ` Yury Norov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56EBD84D.2060009@huawei.com \
    --to=bamvor.zhangjian@huawei.com \
    --cc=Nathan_Lynch@mentor.com \
    --cc=Prasun.Kapoor@caviumnetworks.com \
    --cc=agraf@suse.de \
    --cc=arnd@arndb.de \
    --cc=bamvor.zhangjian@linaro.org \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=christoph.muellner@theobroma-systems.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jan.dakinevich@gmail.com \
    --cc=joseph@codesourcery.com \
    --cc=klimov.linux@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pinskia@gmail.com \
    --cc=schwab@suse.de \
    --cc=schwidefsky@de.ibm.com \
    --cc=ynorov@caviumnetworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.