[PATCH V2] purgatory: Change default sha256 optimization to -O2

2016-12-01 Thread Geoff Levand
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 Anand 
Signed-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

2016-12-01 Thread Geoff Levand
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

2016-12-01 Thread Xunlei Pang
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