lkml.org 
[lkml]   [2008]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: KVM overflows the stack
    Date
     > Yes, things like kvm_lapic_state are way too big to be on the stack.

    I had a quick look at the code, and my worry about dynamic allocation
    would be that handling allocation failure seems like it might get
    tricky. Eg for handling struct kvm_pv_mmu_op_buffer (which is 528 bytes
    on the stack in kvm_pv_mmu_op()) can you deal with an mmu op failing?
    (maybe in that case you can easily by just setting *ret to 0?)

    > There's an additional problem here, that apparently your gcc (which
    > version?) doesn't fold objects in a switch statement into the same
    > stack slot:
    >
    > switch (...) {
    > case x: {
    > struct medium a;
    > ...
    > }
    > case y:
    > struct medium b;
    > ...
    > }
    > };

    A trick for this is to do:

    union {
    struct medium1 a;
    struct medium2 b;
    } u;

    switch (...) {
    case x:
    use u.a;
    ...

    case y:
    use u.b;
    ...
    }


    \
     
     \ /
      Last update: 2008-07-17 08:11    [W:0.023 / U:1.672 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site