[pve-devel] proxmox6 : vhost_net experimental_zcopytx=1 bug?

Alexandre DERUMIER aderumier at odiso.com
Wed Aug 21 10:01:37 CEST 2019


>>I do not really see the connection, though... O.o 
>>Could also be an issue with our systemd related code, or with systemd's 
>>scope handling (yet again)..

for the user having this stack trace,
Aug 17 11:45:26 server kernel: Call Trace:
Aug 17 11:45:26 server kernel: __schedule+0x2d4/0x870
Aug 17 11:45:26 server kernel: ? wait_for_completion+0xc2/0x140
Aug 17 11:45:26 server kernel: ? wake_up_q+0x80/0x80
Aug 17 11:45:26 server kernel: schedule+0x2c/0x70
Aug 17 11:45:26 server kernel: vhost_net_ubuf_put_and_wait+0x60/0x90 [vhost_net]
Aug 17 11:45:26 server kernel: ? wait_woken+0x80/0x80
Aug 17 11:45:26 server kernel: vhost_net_ioctl+0x5fe/0xa50 [vhost_net]
Aug 17 11:45:26 server kernel: ? send_signal+0x3e/0x80
Aug 17 11:45:26 server kernel: do_vfs_ioctl+0xa9/0x640
Aug 17 11:45:26 server kernel: ksys_ioctl+0x67/0x90
Aug 17 11:45:26 server kernel: __x64_sys_ioctl+0x1a/0x20
Aug 17 11:45:26 server kernel: do_syscall_64+0x5a/0x110
Aug 17 11:45:26 server kernel: entry_SYSCALL_64_after_hwframe+0x44/0xa9
Aug 17 11:45:26 server kernel: RIP: 0033:0x7f03ce3bc427
Aug 17 11:45:26 server kernel: Code: Bad RIP value.

they was a similar bug in kernel 4.14 (with same stack trace host_net_ubuf_put_and_wait)
https://bugzilla.redhat.com/show_bug.cgi?id=1494974

(mainly at vm shutdown, but I think the user have problem when he's trying to shutdown, then start again)

At this time it was because of a kernel patch
"Date:   Thu Aug 3 16:29:38 2017 -0400

    sock: skb_copy_ubufs support for compound pages
    
    Refine skb_copy_ubufs to support compound pages. With upcoming TCP
    zerocopy sendmsg, such fragments may appear.
    
    The existing code replaces each page one for one. Splitting each
    compound page into an independent number of regular pages can result
    in exceeding limit MAX_SKB_FRAGS if data is not exactly page aligned.
    
    Instead, fill all destination pages but the last to PAGE_SIZE.
    Split the existing alloc + copy loop into separate stages:
    1. compute bytelength and minimum number of pages to store this.
    2. allocate
    3. copy, filling each page except the last to PAGE_SIZE bytes
    4. update skb frag array"


This was fixed, but maybe they are a new regression in recent kernel ?



----- Mail original -----
De: "Wolfgang Bumiller" <w.bumiller at proxmox.com>
À: "aderumier" <aderumier at odiso.com>
Cc: "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Mercredi 21 Août 2019 09:31:04
Objet: Re: [pve-devel] proxmox6 : vhost_net  experimental_zcopytx=1 bug?

On Tue, Aug 20, 2019 at 11:32:57AM +0200, Alexandre DERUMIER wrote: 
> Hi, 
> 
> Some users have reported vm start timeout on proxmox6 
> 
> https://forum.proxmox.com/threads/vm-doesnt-start-proxmox-6-timeout-waiting-on-systemd.56218/ 
> 
> and for at least 2 of them, 
> 
> the vhost_net module option experimental_zcopytx=0 have fixed it. 

I do not really see the connection, though... O.o 
Could also be an issue with our systemd related code, or with systemd's 
scope handling (yet again)... 

> It was enable by default since 2012, so maybe regression somewhere. (also redhat disable it by default) 
> 
> 
> It seem than in kernel 5.1, the value has been rollback to 0 
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.2.9&id=9d28094f3cf3b315e784f04ba617de8c8d8978fa 
> 
> Not sure if this patch could be backported in proxmox 5.0 kernel ? 

Makes sense IMO. After all it's an upstream decision made due to known issues. 



More information about the pve-devel mailing list