On 05/27/2016 10:07 PM, James Morse wrote:
Hi Alex,
On 25/05/16 16:09, Alex Shi wrote:
Thanks a lot for your info! I did the backporting on lsk branch: git://git.linaro.org/kernel/linux-linaro-stable.git v4.1/topic/hibernate or https://git.linaro.org/kernel/linux-linaro-stable.git/shortlog/refs/heads/v4...
which has 142 commits, include 20 conflicts. most of them are just skip some missed commits contents. and I tried to give reasons for other complex conflicts fix.
I merged it into linux-linaro-lsk-v4.1-test branch which booted on my x86 qemu.
Would you like to give a review for that branch? or do a testing if it's trouble you much.
I gave this branch a spin through the tests I did on Juno, all of which worked fine.
A quick look at the tree shows you are missing:
c612505f8605 ("arm64: kvm: Fix kvm teardown for systems using the extended idmap")
Which fixes a hyp-panic on Seattle with 4K/39 caused by "arm64: kvm: allows kvm cpu hotplug". We didn't find this until after Will had picked the patches, (hence the gap in the git log).
Thanks for for this info. I picked up this patch with some dependency. Would you like to review this on the same branches?
I received the build-warning below[3] ... hibernate didn't touch this code, and I can't remember if its 'normal' for v4.1.
This warning has no harm. It's due to gcc first time see the device_node in the its_init function's parameter list instead of a definition in linux/of.h.
To tame this complaints, I add a fix for this: commit fa0d862f428fdfded946bd09d45e78865f6efc45 Author: Alex Shi alex.shi@linaro.org Date: Tue May 31 17:07:32 2016 +0800
vgic-v3: tame the undeclared struct warning
In file included from arch/arm64/kvm/hyp/vgic-v3-sr.c:19:0: include/linux/irqchip/arm-gic-v3.h:390:14: warning: ‘struct device_node’ declared inside parameter list struct irq_domain *domain); ^ include/linux/irqchip/arm-gic-v3.h:390:14: warning: its scope is only this definition or declaration, which is probably not what you want
Above warning is due to gcc has no idea of 'struct device_node' before first meet it in 'its_init(struct device_node *node, struct rdists *rdists ...)' It is no harm here since this function just use it as an pointer. But to tame the extra warning, introduce of.h for device_node defination before its_init.
Signed-off-by: Alex Shi alex.shi@linaro.org
diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c index a769458..a8f5fd4 100644 --- a/arch/arm64/kvm/hyp/vgic-v3-sr.c +++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c @@ -16,6 +16,7 @@ */
#include <linux/compiler.h> +#include <linux/of.h> #include <linux/irqchip/arm-gic-v3.h> #include <linux/kvm_host.h>
BTW, During the painful backporting I do think your previous version should be better to avoid much commits introductions. Does you previous version are just base kernel change? or some new ideas from community? Honestly, I have a bit regret for not taking Mark's suggestion on this.
The details are in the cover letter of each version of the series [0].
The hyp-gone stuff was based on Marc Zyngier's feedback, a fix for this was needed as it causes problems when reboot() races with guests being scheduled.(original report at [1]). The other recent change was to the kvm->hyp register use, which is shared with the hyp-stub, again this was based on review feedback [2]. These two probably generated most of the backport difficulties as they both touch kvm, which has seen a lot of changes since v4.1. The same patches would also be required for kexec.
Thanks a lot for all info. Yes, it is headache for me, a total idiot on kvm.