Re: [PATCH 00/17] Add kexec_file_load support to s390

2018-02-23 Thread Dave Young
On 02/23/18 at 11:01am, Philipp Rudo wrote:
> Hi Dave
> 
> On Fri, 23 Feb 2018 16:34:05 +0800
> Dave Young  wrote:
> 
> > On 02/14/18 at 10:54am, Philipp Rudo wrote:
> > > Hi Dave,
> > > 
> > > I just browsed AKASHI's patches (v7). The way I see it the common code 
> > > changes
> > > are on different areas of kexec_file and shouldn't get in conflict. Only 
> > > in the
> > > arch code (s390 and arm64) some function calls might need an update. But 
> > > I have
> > > to take a closer look on the patches first.  
> > 
> > I'm tring both in local branch with both series (V8 from AKASHI and this 
> > series),
> > but there are indeed some conflicts, may because AKASHI factored out some 
> > arch
> > code from ppc/x86 to common code.
> 
> I feared this would happen.  I didn't have time to look at AKASHI's v8
> yesterday but hope to find some today. How do you think i should handle
> conflicts with his patches? I don't think it is wise to include the changes
> into my patches as that would make AKASHI's patches a prereq for mine. Is 
> adding
> one (multiple?) fixup patches on top of my series ok for you?

Arch code need arch maintainer to review, maybe either of you can send
the common part first before the arch code, eg. AKASHI can split the common
 cleanup patches and post them as a separate series, after these prep
series are reviewed then other patches can be refreshed based on it.

Seems in AKASHI's series, only patch 2, 3 ,4 ,5 is needed if split out
as a common change series.

What do you think? 
> 
> Thanks
> Philipp
> 
> > > 
> > > @AKASHI: Welcome to the list. While browsing I couldn't find any
> > > arch_apply_relocation function for arm64. These require the biggest 
> > > changes in
> > > my patch set. Did I just miss it or does arm64 work differently?
> > > 
> > > @Dave: Happy holiday  
> > 
> > Thank you!
> > 
> > > 
> > > Thanks
> > > Philipp
> > > 
> > > On Wed, 14 Feb 2018 15:35:43 +0800
> > > Dave Young  wrote:
> > >   
> > > > Hi Philipp,
> > > > 
> > > > I added AKASHI in cc, he posted arm64 kexec_file series previously.
> > > > I would like to read both series especially the general part, but
> > > > maybe at the end of this month because of a holiday..
> > > > 
> > > > From the patch log the cleanup looks nice, but still need read the
> > > > details.
> > > > 
> > > > On 02/12/18 at 11:07am, Philipp Rudo wrote:  
> > > > > Hi everybody
> > > > > 
> > > > > resending the series as there was no reaction, yet. Furthermore i was 
> > > > > told
> > > > > that Andrew and the x86 list should also be CCed, so welcome.
> > > > > 
> > > > > No changes made to the patches since first time i sent them. The 
> > > > > patches
> > > > > apply to the current master (v4.16-rc1).
> > > > > 
> > > > > Thanks
> > > > > Philipp
> > > > > 
> > > > > ---
> > > > > 
> > > > > this series adds the kexec_file_load system call to s390. Before the 
> > > > > system
> > > > > call is added there are some preparations/clean ups to common
> > > > > kexec_file_load. In detail this series contains:
> > > > > 
> > > > > Patch #1&2: Minor cleanups/fixes.
> > > > > 
> > > > > Patch #3-9: Clean up the purgatory load/relocation code. Especially 
> > > > > remove
> > > > > the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
> > > > > holding a pointer into either kexec_purgatory (ro) or purgatory_buf 
> > > > > (rw)
> > > > > depending on the section. With these patches the section address will 
> > > > > be
> > > > > calculated verbosely and sh_offset will contain the offset of the 
> > > > > section
> > > > > in the stripped purgatory binary (purgatory_buf).
> > > > > 
> > > > > Patch #10: Allows architectures to set the purgaory load address. This
> > > > > patch is important for s390 as the kernel and purgatory have to be 
> > > > > loaded
> > > > > to fixed addresses. In current code this is impossible as the 
> > > > > purgatory
> > > > > load is opaque to the architecture.
> > > > > 
> > > > > Patch #11: Moves x86 purgatories sha implementation to common lib/
> > > > > directory.
> > > > > 
> > > > > Patches #12-17 finally adds the kexec_file_load system call to s390.
> > > > > 
> > > > > Please note that I had to touch arch code for x86 and power a little. 
> > > > > In
> > > > > theory this should not change the behavior but I don't have a way to 
> > > > > test
> > > > > it. Cross-compiling with defconfig(*) works fine for both.
> > > > > 
> > > > > Thanks
> > > > > Philipp
> > > > > 
> > > > > (*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on 
> > > > > s390...
> > > > > 
> > > > > Philipp Rudo (17):
> > > > >   kexec_file: Silence compile warnings
> > > > >   kexec_file: Remove checks in kexec_purgatory_load
> > > > >   kexec_file: Make purgatory_info->ehdr const
> > > > >   kexec_file: Search symbols in read-only kexec_purgatory
> > > > >   kexec_file: Use read-only sections in arch_kexec_apply_relocations*
> > > > >   kexec_file: Split up 

Re: [PATCH 00/17] Add kexec_file_load support to s390

2018-02-23 Thread Philipp Rudo
Hi Dave

On Fri, 23 Feb 2018 16:34:05 +0800
Dave Young  wrote:

> On 02/14/18 at 10:54am, Philipp Rudo wrote:
> > Hi Dave,
> > 
> > I just browsed AKASHI's patches (v7). The way I see it the common code 
> > changes
> > are on different areas of kexec_file and shouldn't get in conflict. Only in 
> > the
> > arch code (s390 and arm64) some function calls might need an update. But I 
> > have
> > to take a closer look on the patches first.  
> 
> I'm tring both in local branch with both series (V8 from AKASHI and this 
> series),
> but there are indeed some conflicts, may because AKASHI factored out some arch
> code from ppc/x86 to common code.

I feared this would happen.  I didn't have time to look at AKASHI's v8
yesterday but hope to find some today. How do you think i should handle
conflicts with his patches? I don't think it is wise to include the changes
into my patches as that would make AKASHI's patches a prereq for mine. Is adding
one (multiple?) fixup patches on top of my series ok for you?

Thanks
Philipp

> > 
> > @AKASHI: Welcome to the list. While browsing I couldn't find any
> > arch_apply_relocation function for arm64. These require the biggest changes 
> > in
> > my patch set. Did I just miss it or does arm64 work differently?
> > 
> > @Dave: Happy holiday  
> 
> Thank you!
> 
> > 
> > Thanks
> > Philipp
> > 
> > On Wed, 14 Feb 2018 15:35:43 +0800
> > Dave Young  wrote:
> >   
> > > Hi Philipp,
> > > 
> > > I added AKASHI in cc, he posted arm64 kexec_file series previously.
> > > I would like to read both series especially the general part, but
> > > maybe at the end of this month because of a holiday..
> > > 
> > > From the patch log the cleanup looks nice, but still need read the
> > > details.
> > > 
> > > On 02/12/18 at 11:07am, Philipp Rudo wrote:  
> > > > Hi everybody
> > > > 
> > > > resending the series as there was no reaction, yet. Furthermore i was 
> > > > told
> > > > that Andrew and the x86 list should also be CCed, so welcome.
> > > > 
> > > > No changes made to the patches since first time i sent them. The patches
> > > > apply to the current master (v4.16-rc1).
> > > > 
> > > > Thanks
> > > > Philipp
> > > > 
> > > > ---
> > > > 
> > > > this series adds the kexec_file_load system call to s390. Before the 
> > > > system
> > > > call is added there are some preparations/clean ups to common
> > > > kexec_file_load. In detail this series contains:
> > > > 
> > > > Patch #1&2: Minor cleanups/fixes.
> > > > 
> > > > Patch #3-9: Clean up the purgatory load/relocation code. Especially 
> > > > remove
> > > > the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
> > > > holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
> > > > depending on the section. With these patches the section address will be
> > > > calculated verbosely and sh_offset will contain the offset of the 
> > > > section
> > > > in the stripped purgatory binary (purgatory_buf).
> > > > 
> > > > Patch #10: Allows architectures to set the purgaory load address. This
> > > > patch is important for s390 as the kernel and purgatory have to be 
> > > > loaded
> > > > to fixed addresses. In current code this is impossible as the purgatory
> > > > load is opaque to the architecture.
> > > > 
> > > > Patch #11: Moves x86 purgatories sha implementation to common lib/
> > > > directory.
> > > > 
> > > > Patches #12-17 finally adds the kexec_file_load system call to s390.
> > > > 
> > > > Please note that I had to touch arch code for x86 and power a little. In
> > > > theory this should not change the behavior but I don't have a way to 
> > > > test
> > > > it. Cross-compiling with defconfig(*) works fine for both.
> > > > 
> > > > Thanks
> > > > Philipp
> > > > 
> > > > (*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on 
> > > > s390...
> > > > 
> > > > Philipp Rudo (17):
> > > >   kexec_file: Silence compile warnings
> > > >   kexec_file: Remove checks in kexec_purgatory_load
> > > >   kexec_file: Make purgatory_info->ehdr const
> > > >   kexec_file: Search symbols in read-only kexec_purgatory
> > > >   kexec_file: Use read-only sections in arch_kexec_apply_relocations*
> > > >   kexec_file: Split up __kexec_load_puragory
> > > >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
> > > >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
> > > >   kexec_file: Remove mis-use of sh_offset field
> > > >   kexec_file: Allow archs to set purgatory load address
> > > >   kexec_file: Move purgatories sha256 to common code
> > > >   s390/kexec_file: Prepare setup.h for kexec_file_load
> > > >   s390/kexec_file: Add purgatory
> > > >   s390/kexec_file: Add kexec_file_load system call
> > > >   s390/kexec_file: Add image loader
> > > >   s390/kexec_file: Add crash support to image loader
> > > >   s390/kexec_file: Add ELF loader
> > > > 
> > > >  arch/powerpc/kernel/kexec_elf_64.c |   9 +-
> > > >  arch/s390/Kbuild

Re: [PATCH 00/17] Add kexec_file_load support to s390

2018-02-23 Thread Dave Young
On 02/14/18 at 10:54am, Philipp Rudo wrote:
> Hi Dave,
> 
> I just browsed AKASHI's patches (v7). The way I see it the common code changes
> are on different areas of kexec_file and shouldn't get in conflict. Only in 
> the
> arch code (s390 and arm64) some function calls might need an update. But I 
> have
> to take a closer look on the patches first.

I'm tring both in local branch with both series (V8 from AKASHI and this 
series),
but there are indeed some conflicts, may because AKASHI factored out some arch
code from ppc/x86 to common code.

> 
> @AKASHI: Welcome to the list. While browsing I couldn't find any
> arch_apply_relocation function for arm64. These require the biggest changes in
> my patch set. Did I just miss it or does arm64 work differently?
> 
> @Dave: Happy holiday

Thank you!

> 
> Thanks
> Philipp
> 
> On Wed, 14 Feb 2018 15:35:43 +0800
> Dave Young  wrote:
> 
> > Hi Philipp,
> > 
> > I added AKASHI in cc, he posted arm64 kexec_file series previously.
> > I would like to read both series especially the general part, but
> > maybe at the end of this month because of a holiday..
> > 
> > From the patch log the cleanup looks nice, but still need read the
> > details.
> > 
> > On 02/12/18 at 11:07am, Philipp Rudo wrote:
> > > Hi everybody
> > > 
> > > resending the series as there was no reaction, yet. Furthermore i was told
> > > that Andrew and the x86 list should also be CCed, so welcome.
> > > 
> > > No changes made to the patches since first time i sent them. The patches
> > > apply to the current master (v4.16-rc1).
> > > 
> > > Thanks
> > > Philipp
> > > 
> > > ---
> > > 
> > > this series adds the kexec_file_load system call to s390. Before the 
> > > system
> > > call is added there are some preparations/clean ups to common
> > > kexec_file_load. In detail this series contains:
> > > 
> > > Patch #1&2: Minor cleanups/fixes.
> > > 
> > > Patch #3-9: Clean up the purgatory load/relocation code. Especially remove
> > > the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
> > > holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
> > > depending on the section. With these patches the section address will be
> > > calculated verbosely and sh_offset will contain the offset of the section
> > > in the stripped purgatory binary (purgatory_buf).
> > > 
> > > Patch #10: Allows architectures to set the purgaory load address. This
> > > patch is important for s390 as the kernel and purgatory have to be loaded
> > > to fixed addresses. In current code this is impossible as the purgatory
> > > load is opaque to the architecture.
> > > 
> > > Patch #11: Moves x86 purgatories sha implementation to common lib/
> > > directory.
> > > 
> > > Patches #12-17 finally adds the kexec_file_load system call to s390.
> > > 
> > > Please note that I had to touch arch code for x86 and power a little. In
> > > theory this should not change the behavior but I don't have a way to test
> > > it. Cross-compiling with defconfig(*) works fine for both.
> > > 
> > > Thanks
> > > Philipp
> > > 
> > > (*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on s390...
> > > 
> > > Philipp Rudo (17):
> > >   kexec_file: Silence compile warnings
> > >   kexec_file: Remove checks in kexec_purgatory_load
> > >   kexec_file: Make purgatory_info->ehdr const
> > >   kexec_file: Search symbols in read-only kexec_purgatory
> > >   kexec_file: Use read-only sections in arch_kexec_apply_relocations*
> > >   kexec_file: Split up __kexec_load_puragory
> > >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
> > >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
> > >   kexec_file: Remove mis-use of sh_offset field
> > >   kexec_file: Allow archs to set purgatory load address
> > >   kexec_file: Move purgatories sha256 to common code
> > >   s390/kexec_file: Prepare setup.h for kexec_file_load
> > >   s390/kexec_file: Add purgatory
> > >   s390/kexec_file: Add kexec_file_load system call
> > >   s390/kexec_file: Add image loader
> > >   s390/kexec_file: Add crash support to image loader
> > >   s390/kexec_file: Add ELF loader
> > > 
> > >  arch/powerpc/kernel/kexec_elf_64.c |   9 +-
> > >  arch/s390/Kbuild   |   1 +
> > >  arch/s390/Kconfig  |   4 +
> > >  arch/s390/include/asm/kexec.h  |  23 ++
> > >  arch/s390/include/asm/purgatory.h  |  17 ++
> > >  arch/s390/include/asm/setup.h  |  40 ++-
> > >  arch/s390/kernel/Makefile  |   1 +
> > >  arch/s390/kernel/asm-offsets.c |   5 +
> > >  arch/s390/kernel/compat_wrapper.c  |   1 +
> > >  arch/s390/kernel/kexec_elf.c   | 149 ++
> > >  arch/s390/kernel/kexec_image.c |  78 +
> > >  arch/s390/kernel/machine_kexec_file.c  | 291 +++
> > >  arch/s390/kernel/syscalls/syscall.tbl  |   1 +

Re: [PATCH 00/17] Add kexec_file_load support to s390

2018-02-14 Thread AKASHI Takahiro
Hi,

On Wed, Feb 14, 2018 at 10:54:49AM +0100, Philipp Rudo wrote:
> Hi Dave,
> 
> I just browsed AKASHI's patches (v7). The way I see it the common code changes
> are on different areas of kexec_file and shouldn't get in conflict. Only in 
> the
> arch code (s390 and arm64) some function calls might need an update. But I 
> have
> to take a closer look on the patches first.

Yes, I mainly focus on re-factoring elf-core-header related code.

> @AKASHI: Welcome to the list. While browsing I couldn't find any
> arch_apply_relocation function for arm64. These require the biggest changes in
> my patch set. Did I just miss it or does arm64 work differently?

Well, after some discussions with arm64 key developers, we decided not to
utilize digest hash values in purgatory as they may not be very valuable, and
this resulted in a simple purgatory, which requires no re-linking/relocations.

In my next version coming soon, as our purgatory was so simple, we will
completely drop a purgatory from kexec_file_load code.
(we will still maintain a purgatory for legacy kexec_load as kexec-tools
has it now.)

Thanks,
-Takahiro AKASHI

> @Dave: Happy holiday
> 
> Thanks
> Philipp
> 
> On Wed, 14 Feb 2018 15:35:43 +0800
> Dave Young  wrote:
> 
> > Hi Philipp,
> > 
> > I added AKASHI in cc, he posted arm64 kexec_file series previously.
> > I would like to read both series especially the general part, but
> > maybe at the end of this month because of a holiday..
> > 
> > From the patch log the cleanup looks nice, but still need read the
> > details.
> > 
> > On 02/12/18 at 11:07am, Philipp Rudo wrote:
> > > Hi everybody
> > > 
> > > resending the series as there was no reaction, yet. Furthermore i was told
> > > that Andrew and the x86 list should also be CCed, so welcome.
> > > 
> > > No changes made to the patches since first time i sent them. The patches
> > > apply to the current master (v4.16-rc1).
> > > 
> > > Thanks
> > > Philipp
> > > 
> > > ---
> > > 
> > > this series adds the kexec_file_load system call to s390. Before the 
> > > system
> > > call is added there are some preparations/clean ups to common
> > > kexec_file_load. In detail this series contains:
> > > 
> > > Patch #1&2: Minor cleanups/fixes.
> > > 
> > > Patch #3-9: Clean up the purgatory load/relocation code. Especially remove
> > > the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
> > > holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
> > > depending on the section. With these patches the section address will be
> > > calculated verbosely and sh_offset will contain the offset of the section
> > > in the stripped purgatory binary (purgatory_buf).
> > > 
> > > Patch #10: Allows architectures to set the purgaory load address. This
> > > patch is important for s390 as the kernel and purgatory have to be loaded
> > > to fixed addresses. In current code this is impossible as the purgatory
> > > load is opaque to the architecture.
> > > 
> > > Patch #11: Moves x86 purgatories sha implementation to common lib/
> > > directory.
> > > 
> > > Patches #12-17 finally adds the kexec_file_load system call to s390.
> > > 
> > > Please note that I had to touch arch code for x86 and power a little. In
> > > theory this should not change the behavior but I don't have a way to test
> > > it. Cross-compiling with defconfig(*) works fine for both.
> > > 
> > > Thanks
> > > Philipp
> > > 
> > > (*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on s390...
> > > 
> > > Philipp Rudo (17):
> > >   kexec_file: Silence compile warnings
> > >   kexec_file: Remove checks in kexec_purgatory_load
> > >   kexec_file: Make purgatory_info->ehdr const
> > >   kexec_file: Search symbols in read-only kexec_purgatory
> > >   kexec_file: Use read-only sections in arch_kexec_apply_relocations*
> > >   kexec_file: Split up __kexec_load_puragory
> > >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
> > >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
> > >   kexec_file: Remove mis-use of sh_offset field
> > >   kexec_file: Allow archs to set purgatory load address
> > >   kexec_file: Move purgatories sha256 to common code
> > >   s390/kexec_file: Prepare setup.h for kexec_file_load
> > >   s390/kexec_file: Add purgatory
> > >   s390/kexec_file: Add kexec_file_load system call
> > >   s390/kexec_file: Add image loader
> > >   s390/kexec_file: Add crash support to image loader
> > >   s390/kexec_file: Add ELF loader
> > > 
> > >  arch/powerpc/kernel/kexec_elf_64.c |   9 +-
> > >  arch/s390/Kbuild   |   1 +
> > >  arch/s390/Kconfig  |   4 +
> > >  arch/s390/include/asm/kexec.h  |  23 ++
> > >  arch/s390/include/asm/purgatory.h  |  17 ++
> > >  arch/s390/include/asm/setup.h  |  40 ++-
> > >  arch/s390/kernel/Makefile  |   1 +
> > >  arch/s390/kernel/asm-offsets.c | 

Re: [PATCH 00/17] Add kexec_file_load support to s390

2018-02-14 Thread Philipp Rudo
Hi Dave,

I just browsed AKASHI's patches (v7). The way I see it the common code changes
are on different areas of kexec_file and shouldn't get in conflict. Only in the
arch code (s390 and arm64) some function calls might need an update. But I have
to take a closer look on the patches first.

@AKASHI: Welcome to the list. While browsing I couldn't find any
arch_apply_relocation function for arm64. These require the biggest changes in
my patch set. Did I just miss it or does arm64 work differently?

@Dave: Happy holiday

Thanks
Philipp

On Wed, 14 Feb 2018 15:35:43 +0800
Dave Young  wrote:

> Hi Philipp,
> 
> I added AKASHI in cc, he posted arm64 kexec_file series previously.
> I would like to read both series especially the general part, but
> maybe at the end of this month because of a holiday..
> 
> From the patch log the cleanup looks nice, but still need read the
> details.
> 
> On 02/12/18 at 11:07am, Philipp Rudo wrote:
> > Hi everybody
> > 
> > resending the series as there was no reaction, yet. Furthermore i was told
> > that Andrew and the x86 list should also be CCed, so welcome.
> > 
> > No changes made to the patches since first time i sent them. The patches
> > apply to the current master (v4.16-rc1).
> > 
> > Thanks
> > Philipp
> > 
> > ---
> > 
> > this series adds the kexec_file_load system call to s390. Before the system
> > call is added there are some preparations/clean ups to common
> > kexec_file_load. In detail this series contains:
> > 
> > Patch #1&2: Minor cleanups/fixes.
> > 
> > Patch #3-9: Clean up the purgatory load/relocation code. Especially remove
> > the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
> > holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
> > depending on the section. With these patches the section address will be
> > calculated verbosely and sh_offset will contain the offset of the section
> > in the stripped purgatory binary (purgatory_buf).
> > 
> > Patch #10: Allows architectures to set the purgaory load address. This
> > patch is important for s390 as the kernel and purgatory have to be loaded
> > to fixed addresses. In current code this is impossible as the purgatory
> > load is opaque to the architecture.
> > 
> > Patch #11: Moves x86 purgatories sha implementation to common lib/
> > directory.
> > 
> > Patches #12-17 finally adds the kexec_file_load system call to s390.
> > 
> > Please note that I had to touch arch code for x86 and power a little. In
> > theory this should not change the behavior but I don't have a way to test
> > it. Cross-compiling with defconfig(*) works fine for both.
> > 
> > Thanks
> > Philipp
> > 
> > (*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on s390...
> > 
> > Philipp Rudo (17):
> >   kexec_file: Silence compile warnings
> >   kexec_file: Remove checks in kexec_purgatory_load
> >   kexec_file: Make purgatory_info->ehdr const
> >   kexec_file: Search symbols in read-only kexec_purgatory
> >   kexec_file: Use read-only sections in arch_kexec_apply_relocations*
> >   kexec_file: Split up __kexec_load_puragory
> >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
> >   kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
> >   kexec_file: Remove mis-use of sh_offset field
> >   kexec_file: Allow archs to set purgatory load address
> >   kexec_file: Move purgatories sha256 to common code
> >   s390/kexec_file: Prepare setup.h for kexec_file_load
> >   s390/kexec_file: Add purgatory
> >   s390/kexec_file: Add kexec_file_load system call
> >   s390/kexec_file: Add image loader
> >   s390/kexec_file: Add crash support to image loader
> >   s390/kexec_file: Add ELF loader
> > 
> >  arch/powerpc/kernel/kexec_elf_64.c |   9 +-
> >  arch/s390/Kbuild   |   1 +
> >  arch/s390/Kconfig  |   4 +
> >  arch/s390/include/asm/kexec.h  |  23 ++
> >  arch/s390/include/asm/purgatory.h  |  17 ++
> >  arch/s390/include/asm/setup.h  |  40 ++-
> >  arch/s390/kernel/Makefile  |   1 +
> >  arch/s390/kernel/asm-offsets.c |   5 +
> >  arch/s390/kernel/compat_wrapper.c  |   1 +
> >  arch/s390/kernel/kexec_elf.c   | 149 ++
> >  arch/s390/kernel/kexec_image.c |  78 +
> >  arch/s390/kernel/machine_kexec_file.c  | 291 +++
> >  arch/s390/kernel/syscalls/syscall.tbl  |   1 +
> >  arch/s390/purgatory/Makefile   |  37 +++
> >  arch/s390/purgatory/head.S | 279 ++
> >  arch/s390/purgatory/purgatory.c|  42 +++
> >  arch/x86/kernel/kexec-bzimage64.c  |   8 +-
> >  arch/x86/kernel/machine_kexec_64.c |  66 ++---
> >  arch/x86/purgatory/Makefile|   3 +
> >  arch/x86/purgatory/purgatory.c |   2 +-
> >  include/linux/kexec.h   

Re: [PATCH 00/17] Add kexec_file_load support to s390

2018-02-13 Thread Dave Young
Hi Philipp,

I added AKASHI in cc, he posted arm64 kexec_file series previously.
I would like to read both series especially the general part, but
maybe at the end of this month because of a holiday..

>From the patch log the cleanup looks nice, but still need read the
details.

On 02/12/18 at 11:07am, Philipp Rudo wrote:
> Hi everybody
> 
> resending the series as there was no reaction, yet. Furthermore i was told
> that Andrew and the x86 list should also be CCed, so welcome.
> 
> No changes made to the patches since first time i sent them. The patches
> apply to the current master (v4.16-rc1).
> 
> Thanks
> Philipp
> 
> ---
> 
> this series adds the kexec_file_load system call to s390. Before the system
> call is added there are some preparations/clean ups to common
> kexec_file_load. In detail this series contains:
> 
> Patch #1&2: Minor cleanups/fixes.
> 
> Patch #3-9: Clean up the purgatory load/relocation code. Especially remove
> the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
> holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
> depending on the section. With these patches the section address will be
> calculated verbosely and sh_offset will contain the offset of the section
> in the stripped purgatory binary (purgatory_buf).
> 
> Patch #10: Allows architectures to set the purgaory load address. This
> patch is important for s390 as the kernel and purgatory have to be loaded
> to fixed addresses. In current code this is impossible as the purgatory
> load is opaque to the architecture.
> 
> Patch #11: Moves x86 purgatories sha implementation to common lib/
> directory.
> 
> Patches #12-17 finally adds the kexec_file_load system call to s390.
> 
> Please note that I had to touch arch code for x86 and power a little. In
> theory this should not change the behavior but I don't have a way to test
> it. Cross-compiling with defconfig(*) works fine for both.
> 
> Thanks
> Philipp
> 
> (*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on s390...
> 
> Philipp Rudo (17):
>   kexec_file: Silence compile warnings
>   kexec_file: Remove checks in kexec_purgatory_load
>   kexec_file: Make purgatory_info->ehdr const
>   kexec_file: Search symbols in read-only kexec_purgatory
>   kexec_file: Use read-only sections in arch_kexec_apply_relocations*
>   kexec_file: Split up __kexec_load_puragory
>   kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
>   kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
>   kexec_file: Remove mis-use of sh_offset field
>   kexec_file: Allow archs to set purgatory load address
>   kexec_file: Move purgatories sha256 to common code
>   s390/kexec_file: Prepare setup.h for kexec_file_load
>   s390/kexec_file: Add purgatory
>   s390/kexec_file: Add kexec_file_load system call
>   s390/kexec_file: Add image loader
>   s390/kexec_file: Add crash support to image loader
>   s390/kexec_file: Add ELF loader
> 
>  arch/powerpc/kernel/kexec_elf_64.c |   9 +-
>  arch/s390/Kbuild   |   1 +
>  arch/s390/Kconfig  |   4 +
>  arch/s390/include/asm/kexec.h  |  23 ++
>  arch/s390/include/asm/purgatory.h  |  17 ++
>  arch/s390/include/asm/setup.h  |  40 ++-
>  arch/s390/kernel/Makefile  |   1 +
>  arch/s390/kernel/asm-offsets.c |   5 +
>  arch/s390/kernel/compat_wrapper.c  |   1 +
>  arch/s390/kernel/kexec_elf.c   | 149 ++
>  arch/s390/kernel/kexec_image.c |  78 +
>  arch/s390/kernel/machine_kexec_file.c  | 291 +++
>  arch/s390/kernel/syscalls/syscall.tbl  |   1 +
>  arch/s390/purgatory/Makefile   |  37 +++
>  arch/s390/purgatory/head.S | 279 ++
>  arch/s390/purgatory/purgatory.c|  42 +++
>  arch/x86/kernel/kexec-bzimage64.c  |   8 +-
>  arch/x86/kernel/machine_kexec_64.c |  66 ++---
>  arch/x86/purgatory/Makefile|   3 +
>  arch/x86/purgatory/purgatory.c |   2 +-
>  include/linux/kexec.h  |  38 +--
>  {arch/x86/purgatory => include/linux}/sha256.h |  10 +-
>  kernel/kexec_file.c| 375 
> -
>  {arch/x86/purgatory => lib}/sha256.c   |   4 +-
>  24 files changed, 1200 insertions(+), 284 deletions(-)
>  create mode 100644 arch/s390/include/asm/purgatory.h
>  create mode 100644 arch/s390/kernel/kexec_elf.c
>  create mode 100644 arch/s390/kernel/kexec_image.c
>  create mode 100644 arch/s390/kernel/machine_kexec_file.c
>  create mode 100644 arch/s390/purgatory/Makefile
>  create mode 100644 arch/s390/purgatory/head.S
>  create mode 100644 arch/s390/purgatory/purgatory.c
>  rename {arch/x86/purgatory => include/linux}/sha256.h (63%)
>  rename {arch/x86/purgatory => lib}/sha256.c (99%)
> 
> -- 
> 2.13.5
> 
> 

[PATCH 00/17] Add kexec_file_load support to s390

2018-02-12 Thread Philipp Rudo
Hi everybody

resending the series as there was no reaction, yet. Furthermore i was told
that Andrew and the x86 list should also be CCed, so welcome.

No changes made to the patches since first time i sent them. The patches
apply to the current master (v4.16-rc1).

Thanks
Philipp

---

this series adds the kexec_file_load system call to s390. Before the system
call is added there are some preparations/clean ups to common
kexec_file_load. In detail this series contains:

Patch #1&2: Minor cleanups/fixes.

Patch #3-9: Clean up the purgatory load/relocation code. Especially remove
the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
depending on the section. With these patches the section address will be
calculated verbosely and sh_offset will contain the offset of the section
in the stripped purgatory binary (purgatory_buf).

Patch #10: Allows architectures to set the purgaory load address. This
patch is important for s390 as the kernel and purgatory have to be loaded
to fixed addresses. In current code this is impossible as the purgatory
load is opaque to the architecture.

Patch #11: Moves x86 purgatories sha implementation to common lib/
directory.

Patches #12-17 finally adds the kexec_file_load system call to s390.

Please note that I had to touch arch code for x86 and power a little. In
theory this should not change the behavior but I don't have a way to test
it. Cross-compiling with defconfig(*) works fine for both.

Thanks
Philipp

(*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on s390...

Philipp Rudo (17):
  kexec_file: Silence compile warnings
  kexec_file: Remove checks in kexec_purgatory_load
  kexec_file: Make purgatory_info->ehdr const
  kexec_file: Search symbols in read-only kexec_purgatory
  kexec_file: Use read-only sections in arch_kexec_apply_relocations*
  kexec_file: Split up __kexec_load_puragory
  kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
  kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
  kexec_file: Remove mis-use of sh_offset field
  kexec_file: Allow archs to set purgatory load address
  kexec_file: Move purgatories sha256 to common code
  s390/kexec_file: Prepare setup.h for kexec_file_load
  s390/kexec_file: Add purgatory
  s390/kexec_file: Add kexec_file_load system call
  s390/kexec_file: Add image loader
  s390/kexec_file: Add crash support to image loader
  s390/kexec_file: Add ELF loader

 arch/powerpc/kernel/kexec_elf_64.c |   9 +-
 arch/s390/Kbuild   |   1 +
 arch/s390/Kconfig  |   4 +
 arch/s390/include/asm/kexec.h  |  23 ++
 arch/s390/include/asm/purgatory.h  |  17 ++
 arch/s390/include/asm/setup.h  |  40 ++-
 arch/s390/kernel/Makefile  |   1 +
 arch/s390/kernel/asm-offsets.c |   5 +
 arch/s390/kernel/compat_wrapper.c  |   1 +
 arch/s390/kernel/kexec_elf.c   | 149 ++
 arch/s390/kernel/kexec_image.c |  78 +
 arch/s390/kernel/machine_kexec_file.c  | 291 +++
 arch/s390/kernel/syscalls/syscall.tbl  |   1 +
 arch/s390/purgatory/Makefile   |  37 +++
 arch/s390/purgatory/head.S | 279 ++
 arch/s390/purgatory/purgatory.c|  42 +++
 arch/x86/kernel/kexec-bzimage64.c  |   8 +-
 arch/x86/kernel/machine_kexec_64.c |  66 ++---
 arch/x86/purgatory/Makefile|   3 +
 arch/x86/purgatory/purgatory.c |   2 +-
 include/linux/kexec.h  |  38 +--
 {arch/x86/purgatory => include/linux}/sha256.h |  10 +-
 kernel/kexec_file.c| 375 -
 {arch/x86/purgatory => lib}/sha256.c   |   4 +-
 24 files changed, 1200 insertions(+), 284 deletions(-)
 create mode 100644 arch/s390/include/asm/purgatory.h
 create mode 100644 arch/s390/kernel/kexec_elf.c
 create mode 100644 arch/s390/kernel/kexec_image.c
 create mode 100644 arch/s390/kernel/machine_kexec_file.c
 create mode 100644 arch/s390/purgatory/Makefile
 create mode 100644 arch/s390/purgatory/head.S
 create mode 100644 arch/s390/purgatory/purgatory.c
 rename {arch/x86/purgatory => include/linux}/sha256.h (63%)
 rename {arch/x86/purgatory => lib}/sha256.c (99%)

-- 
2.13.5


___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


[PATCH 00/17] Add kexec_file_load support to s390

2018-02-02 Thread Philipp Rudo
Hi everybody

this series adds the kexec_file_load system call to s390. Before the system
call is added there are some preparations/clean ups to common
kexec_file_load. In detail this series contains:

Patch #1&2: Minor cleanups/fixes.

Patch #3-9: Clean up the purgatory load/relocation code. Especially remove
the mis-use of the purgatory_info->sechdrs->sh_offset field, currently
holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw)
depending on the section. With these patches the section address will be
calculated verbosely and sh_offset will contain the offset of the section
in the stripped purgatory binary (purgatory_buf).

Patch #10: Allows architectures to set the purgaory load address. This
patch is important for s390 as the kernel and purgatory have to be loaded
to fixed addresses. In current code this is impossible as the purgatory
load is opaque to the architecture.

Patch #11: Moves x86 purgatories sha implementation to common lib/
directory.

Patches #12-17 finally adds the kexec_file_load system call to s390.

Please note that I had to touch arch code for x86 and power a little. In
theory this should not change the behavior but I don't have a way to test
it. Cross-compiling with defconfig(*) works fine for both.

Thanks
Philipp

(*) On x86 with the orc unwinder turned off. objtool SEGFAULTs on s390...

Philipp Rudo (17):
  kexec_file: Silence compile warnings
  kexec_file: Remove checks in kexec_purgatory_load
  kexec_file: Make purgatory_info->ehdr const
  kexec_file: Search symbols in read-only kexec_purgatory
  kexec_file: Use read-only sections in arch_kexec_apply_relocations*
  kexec_file: Split up __kexec_load_puragory
  kexec_file: Simplify kexec_purgatory_setup_sechdrs 1
  kexec_file: Simplify kexec_purgatory_setup_sechdrs 2
  kexec_file: Remove mis-use of sh_offset field
  kexec_file: Allow archs to set purgatory load address
  kexec_file: Move purgatories sha256 to common code
  s390/kexec_file: Prepare setup.h for kexec_file_load
  s390/kexec_file: Add purgatory
  s390/kexec_file: Add kexec_file_load system call
  s390/kexec_file: Add image loader
  s390/kexec_file: Add crash support to image loader
  s390/kexec_file: Add ELF loader

 arch/powerpc/kernel/kexec_elf_64.c |   9 +-
 arch/s390/Kbuild   |   1 +
 arch/s390/Kconfig  |   4 +
 arch/s390/include/asm/kexec.h  |  23 ++
 arch/s390/include/asm/purgatory.h  |  17 ++
 arch/s390/include/asm/setup.h  |  40 ++-
 arch/s390/kernel/Makefile  |   1 +
 arch/s390/kernel/asm-offsets.c |   5 +
 arch/s390/kernel/compat_wrapper.c  |   1 +
 arch/s390/kernel/kexec_elf.c   | 149 ++
 arch/s390/kernel/kexec_image.c |  78 +
 arch/s390/kernel/machine_kexec_file.c  | 291 +++
 arch/s390/kernel/syscalls/syscall.tbl  |   1 +
 arch/s390/purgatory/Makefile   |  37 +++
 arch/s390/purgatory/head.S | 279 ++
 arch/s390/purgatory/purgatory.c|  42 +++
 arch/x86/kernel/kexec-bzimage64.c  |   8 +-
 arch/x86/kernel/machine_kexec_64.c |  66 ++---
 arch/x86/purgatory/Makefile|   3 +
 arch/x86/purgatory/purgatory.c |   2 +-
 include/linux/kexec.h  |  38 +--
 {arch/x86/purgatory => include/linux}/sha256.h |  10 +-
 kernel/kexec_file.c| 375 -
 {arch/x86/purgatory => lib}/sha256.c   |   4 +-
 24 files changed, 1200 insertions(+), 284 deletions(-)
 create mode 100644 arch/s390/include/asm/purgatory.h
 create mode 100644 arch/s390/kernel/kexec_elf.c
 create mode 100644 arch/s390/kernel/kexec_image.c
 create mode 100644 arch/s390/kernel/machine_kexec_file.c
 create mode 100644 arch/s390/purgatory/Makefile
 create mode 100644 arch/s390/purgatory/head.S
 create mode 100644 arch/s390/purgatory/purgatory.c
 rename {arch/x86/purgatory => include/linux}/sha256.h (63%)
 rename {arch/x86/purgatory => lib}/sha256.c (99%)

-- 
2.13.5


___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec