[PATCH V2] purgatory: Change default sha256 optimization to -O2
Change the default purgatory sha256 code optimization from -O0 to -O2, and add a new arch specific makefile variable $(ARCH)_PURGATORY_SHA256_CFLAGS which can over ride this default. Set ia64_PURGATORY_SHA256_CFLAGS to -O0 to retain the previous optimization level for ia64. The purgatory sha256 code needs the be built with -O0 for the ia64 architecture. Currently this code is built with -O0 for all architectures, which slows down the calculations for architectures which could otherwise use -O2. On arm64, it takes around 20 second to verify SHA in purgatory when vmlinuz image is around 13MB and initramfs is around 30M with -O2 enabled. Otherwise, it takes more than 2 minutes. Cc: Pratyush AnandSigned-off-by: Geoff Levand --- purgatory/Makefile | 4 +--- purgatory/arch/ia64/Makefile | 4 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/purgatory/Makefile b/purgatory/Makefile index ca0443c..328904e 100644 --- a/purgatory/Makefile +++ b/purgatory/Makefile @@ -38,9 +38,7 @@ clean += $(PURGATORY_OBJS) $(PURGATORY_DEPS) $(PURGATORY) -include $(PURGATORY_DEPS) -# sha256.c needs to be compiled without optimization, else -# purgatory fails to execute on ia64. -purgatory/sha256.o: CFLAGS += -O0 +purgatory/sha256.o: CFLAGS += -O2 $($(ARCH)_PURGATORY_SHA256_CFLAGS) purgatory/sha256.o: $(srcdir)/util_lib/sha256.c mkdir -p $(@D) diff --git a/purgatory/arch/ia64/Makefile b/purgatory/arch/ia64/Makefile index 32c3d97..4a2564c 100644 --- a/purgatory/arch/ia64/Makefile +++ b/purgatory/arch/ia64/Makefile @@ -8,6 +8,10 @@ ia64_PURGATORY_SRCS += purgatory/arch/ia64/vga.c ia64_PURGATORY_EXTRA_CFLAGS = -ffixed-r28 +# sha256.c needs to be compiled without optimization, else +# purgatory fails to execute on ia64. +ia64_PURGATORY_SHA256_CFLAGS = -O0 + dist += purgatory/arch/ia64/Makefile $(ia64_PURGATORY_SRCS)\ purgatory/arch/ia64/io.h purgatory/arch/ia64/purgatory-ia64.h -- 2.9.3 ___ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
Re: [PATCH] purgatory: Change default sha256 optimization to -O2
Hi Simon, On 11/30/2016 03:02 AM, Simon Horman wrote: > This patch doesn't seem to apply against the master branch. > I'm wondering if you or Geoff could: > > 1. Rebase the patch > 2. Include some text about the performance improvement. >Something like what is above would be fine from my pov. I have this patch based on your master at git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git. The problem could be the settings of my new mail client. I'll add the comment and try a re-post. -Geoff ___ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped
On 12/01/2016 at 06:33 PM, Joerg Roedel wrote: > On Thu, Dec 01, 2016 at 10:15:45AM +0800, Xunlei Pang wrote: >> index 3965e73..624eac9 100644 >> --- a/drivers/iommu/intel-iommu.c >> +++ b/drivers/iommu/intel-iommu.c >> @@ -2024,6 +2024,25 @@ static int domain_context_mapping_one(struct >> dmar_domain *domain, >> if (context_present(context)) >> goto out_unlock; >> >> + /* >> +* For kdump cases, old valid entries may be cached due to the >> +* in-flight DMA and copied pgtable, but there is no unmapping >> +* behaviour for them, thus we need an explicit cache flush for >> +* the newly-mapped device. For kdump, at this point, the device >> +* is supposed to finish reset at its driver probe stage, so no >> +* in-flight DMA will exist, and we don't need to worry anymore >> +* hereafter. >> +*/ >> + if (context_copied(context)) { >> + u16 did_old = context_domain_id(context); >> + >> + if (did_old >= 0 && did_old < cap_ndoms(iommu->cap)) >> + iommu->flush.flush_context(iommu, did_old, >> + (((u16)bus) << 8) | devfn, >> + DMA_CCMD_MASK_NOBIT, >> + DMA_CCMD_DEVICE_INVL); >> + } >> + >> pgd = domain->pgd; > Yes, this looks better. Have you tested it the same way as the old > patch? Yes, I have tested and it works, will send v3 later. Regards, Xunlei ___ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec