On Tue, 2013-12-10 at 03:05 +0100, Alexander Graf wrote: > On 09.12.2013, at 22:18, Scott Wood <scottwood@xxxxxxxxxxxxx> wrote: > > > On Mon, 2013-11-25 at 04:26 -0600, Bharat Bhushan wrote: > >> > >>> -----Original Message----- > >>> From: Wood Scott-B07421 > >>> Sent: Saturday, November 23, 2013 3:22 AM > >>> To: Alexander Graf > >>> Cc: kvm-ppc@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; Wood Scott-B07421; Bhushan > >>> Bharat-R65777 > >>> Subject: [PATCH] powerpc/kvm/booke: Fix build break due to stack frame size > >>> warning > >>> > >>> Commit ce11e48b7fdd256ec68b932a89b397a790566031 ("KVM: PPC: E500: Add > >>> userspace debug stub support") added "struct thread_struct" to the > >>> stack of kvmppc_vcpu_run(). thread_struct is 1152 bytes on my build, > >>> compared to 48 bytes for the recently-introduced "struct debug_reg". > >>> Use the latter instead. > >>> > >>> This fixes the following error: > >>> > >>> cc1: warnings being treated as errors > >>> arch/powerpc/kvm/booke.c: In function 'kvmppc_vcpu_run': > >>> arch/powerpc/kvm/booke.c:760:1: error: the frame size of 1424 bytes is larger > >>> than 1024 bytes > >>> make[2]: *** [arch/powerpc/kvm/booke.o] Error 1 > >>> make[1]: *** [arch/powerpc/kvm] Error 2 > >>> make[1]: *** Waiting for unfinished jobs.... > >>> > >>> Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx> > >>> Cc: Bharat Bhushan <r65777@xxxxxxxxxxxxx> > >>> --- > >>> Build tested only. Bharat, please test. > >> > >> Tested with qemu debug stub; It works fine > >> > >> -Bharat > > > > Alex, are you going to take this through your tree? > > Sure. Do you want this for 3.13 or 3.14? Since I don't see the breakage > with my compilers I'd queue it for 3.14, but whatever works for you > works for me. 3.13 please. All I need to do to trigger the build break is enable KVM with corenet64_smp_defconfig with GCC 4.5. Oddly, I don't see it with newer GCCs (4.7.3 or 4.8.0). It looks like it may be a bug in the stack frame warning in those newer versions. This is the code from 4.8.0: 0000000000000e8c <.kvmppc_vcpu_run>: .kvmppc_vcpu_run(): /home/scott/fsl/git/linux/upstream/arch/powerpc/kvm/booke.c:682 e8c: 7c 08 02 a6 mflr r0 e90: fb 41 ff d0 std r26,-48(r1) e94: 7c 7a 1b 78 mr r26,r3 e98: fb a1 ff e8 std r29,-24(r1) e9c: fb c1 ff f0 std r30,-16(r1) ea0: 7c 9e 23 78 mr r30,r4 ea4: fb e1 ff f8 std r31,-8(r1) ea8: f8 01 00 10 std r0,16(r1) eac: fb 21 ff c8 std r25,-56(r1) eb0: fb 61 ff d8 std r27,-40(r1) eb4: fb 81 ff e0 std r28,-32(r1) eb8: f8 21 fe 41 stdu r1,-448(r1) /home/scott/fsl/git/linux/upstream/arch/powerpc/kvm/booke.c:690 ebc: 89 44 08 a9 lbz r10,2217(r4) /home/scott/fsl/git/linux/upstream/arch/powerpc/kvm/booke.c:682 ec0: 7c 3f 0b 78 mr r31,r1 ec4: e9 21 00 00 ld r9,0(r1) /home/scott/fsl/git/linux/upstream/arch/powerpc/kvm/booke.c:690 ec8: 2f 8a 00 00 cmpwi cr7,r10,0 /home/scott/fsl/git/linux/upstream/arch/powerpc/kvm/booke.c:682 ecc: f9 21 fb 41 stdu r9,-1216(r1) ed0: 3b a1 00 af addi r29,r1,175 ed4: 7b bd 06 64 rldicr r29,r29,0,57 The instruction at 0xecc expands the stack by 1216 bytes, on top of the already allocated stack frame of 448 bytes. I'm not sure why it's creating a secondary stack frame in this odd way. GCC 4.5, which produces the warning, does this instead: 0000000000000eb8 <.kvmppc_vcpu_run>: kvmppc_vcpu_run(): /home/scott/fsl/git/linux/upstream/arch/powerpc/kvm/booke.c:682 eb8: 7c 08 02 a6 mflr r0 ebc: fb 61 ff d8 std r27,-40(r1) ec0: 7c 7b 1b 78 mr r27,r3 ec4: fb e1 ff f8 std r31,-8(r1) ec8: 7c 9f 23 78 mr r31,r4 ecc: f8 01 00 10 std r0,16(r1) ed0: fb 41 ff d0 std r26,-48(r1) ed4: fb 81 ff e0 std r28,-32(r1) ed8: fb a1 ff e8 std r29,-24(r1) edc: f8 21 f9 d1 stdu r1,-1584(r1) -Scott -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html