Re: Linux x86 guest panics in skb_copy_bits

Marcelo Tosatti
2009-05-04T22:41:08Z

Justin,

On Sun, May 03, 2009 at 11:40:47AM -0700, Justin Dossey wrote:
> Hi all,
>
> I have a pretty straightforward setup.
>
> Hypervisor:
> dual xeon e5205 running Gentoo Linux
> kernel 2.6.27 with virtio devices enabled
> kvm 84
> libvirt 0.5.1
>
> Guest:
> 32-bit, virtio for nic and disk, qcow2.
> Linux 2.6.28.
>
> Network is bridged using tap and brctl.
>
> I'm running Apache on the guest.  Whenever I send enough data through
> the virtual NIC, I get a panic in skb_copy_bits.  I've tried using the
> e1000 driver instead of the virtio one, but that makes no difference.
>
> Has anyone else seen this behavior before?  I got this on 2.6.27 and 2.6.28.
>
> Here's a snippet:
>
> [280204.340016]  [<c02253e2>] panic+0x4e/0xea
> [280204.340016]  [<c05906b9>] oops_end+0x8f/0xa3
> [280204.340016]  [<c0204e94>] die+0x57/0x5f
> [280204.340016]  [<c0592192>] do_page_fault+0x605/0x6bc
> [280204.340016]  [<c059010d>] ? _spin_lock+0x15/0x18
> [280204.340016]  [<c04bfad8>] ? __qdisc_run+0xe6/0x1a7
> [280204.340016]  [<c0591b8d>] ? do_page_fault+0x0/0x6bc
> [280204.340016]  [<c0590482>] error_code+0x72/0x78
> [280204.340016]  [<c04ace8c>] ? skb_copy_bits+0x4f/0x1c4
> [280204.340016]  [<c0215864>] ? kvm_set_pte+0x26/0x29
> [280204.340016]  [<c054889c>] xdr_skb_read_bits+0x1f/0x37
> [280204.340016]  [<c054872b>] xdr_partial_copy_from_skb+
> 0x117/0x16c
> [280204.340016]  [<c0549ec4>] xs_tcp_data_recv+0x245/0x3de
> [280204.340016]  [<c054887d>] ? xdr_skb_read_bits+0x0/0x37
> [280204.340016]  [<c04e07d6>] tcp_read_sock+0x8c/0x1e2
> [280204.340016]  [<c0549c7f>] ? xs_tcp_data_recv+0x0/0x3de
> [280204.340016]  [<c054a5d1>] xs_tcp_data_ready+0x54/0x64
> [280204.340016]  [<c04e9469>] tcp_rcv_established+0x524/0x7b7
> [280204.340016]  [<c04ee4b2>] tcp_v4_do_rcv+0x173/0x2dc

Seems to be an issue with paravirt mmu. Do you happen to have
CONFIG_DEBUG_PAGEALLOC turned on your guests?