[Lguest] gigantic kernel footprint

ron minnich rminnich at gmail.com
Thu Mar 4 12:03:44 EST 2010


OK, we were trying to understand why lguest has a 40M kernel footprint
and KVM has an 8M kernel footprint.

Same kernel.

We finally got it. I realize this is obvious but it just was not what
we expected ...

       /* If we can receive ANY GSO packets, we must allocate large ones. */
        if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4)
            || virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6)
            || virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN))
                vi->big_packets = true;

And try_fill_recv_maxbufs proceeds to allocate 40 MB of pages ...
owie. I mean, I like big packets as much as the next guy, but 40
Mbytes of packet buffers for one little guest? That seems a bit harsh,
esp. when we're running around 1000 of them on a node :-) I mean, I
realize each guest thinks "it's all about me", but we tend to squash
their little egos every chance we get. We don't know how to spell
mrcey.

maybe try_fill_recv_maxbufs is a little too aggressive here?

Anyway, can someone remind me of how to turn these features off when I
start lguest? Gotta turn off all three. I for the life of me can't
remember. For now we're just hardwiring big_packets to 0 :-)

ron


More information about the Lguest mailing list