From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTP id 613415A0276 for ; Mon, 12 Feb 2024 17:57:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1707757054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=as3bbq4XK3C2vvEPqtx0qGYpeUxpyHC0GYwLONsv60Q=; b=CJcwljHSXCDcBTZ9EM1KWAWPHQeZWF8h6IHVmwyUGAn5YPYZDIDC7qg7T/YNuPOu0hyaeF FGZnDHXAH4NND+dX1JNj98+tiNk7ciMtMKQBB6ogQJAHdHpSWMrTdeuIbz5IaRrNKspfWK y0QMj1tlYpanOhWzuYDdsNE6iqrv6r8= Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-526-75LFvhR0PFyeSNPrFE-ODw-1; Mon, 12 Feb 2024 11:57:33 -0500 X-MC-Unique: 75LFvhR0PFyeSNPrFE-ODw-1 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-5605a2937d4so2489730a12.1 for ; Mon, 12 Feb 2024 08:57:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707757052; x=1708361852; h=content-transfer-encoding:mime-version:organization:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=as3bbq4XK3C2vvEPqtx0qGYpeUxpyHC0GYwLONsv60Q=; b=WTbFoRjfK69toVW265AlceKt0mhGKMflUCNGQWnH0iPIKU8bWFD1WHQI+ecnAH81Xg icakaI6oMtlG4bLLKzONTQkL2HbNDQNAaO4OtsLSrBkny8kcsTteBY0sMpeE3BL1h8pp o/dfFglRRwjRgBcq24NpCEBDXE6v9IaMlF1/CEdvdVG8LTx2unAcqqp0cuD6QPgbWoBC 7eGuBFEKeTFpIGbX9Cfkz9fyGrufv7uMyEqvf6OTBqxAE1TrTRi1bNFjrfuk6+0/tLKR 4tSn0D6+iKvBzok1vhHJMxBffgZVjnB5/Eb/d5miRkqZ9eBqSjh7HP3nZhnn5pIcWNsc wZAQ== X-Gm-Message-State: AOJu0YzI/sgJ62t9ZgYXfKRbxpafCkgoK3VgkIkvJqXPj7/rf5Y7ffHc 8ZWbaax0nnjaRKbKNxekd69Xtgyg7jhNXw9EPWMID1S8+NNt8ivTjgKPWbp2a1t64ZthwPnO2LF D8vIqCCV2a4sWo6eINit5PMUtXcjdKm/RnwvsWZ+86a9FKy7dtQ== X-Received: by 2002:a17:906:348f:b0:a3c:536f:b282 with SMTP id g15-20020a170906348f00b00a3c536fb282mr4898285ejb.16.1707757052076; Mon, 12 Feb 2024 08:57:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IHgbzmmjpabtvdr8kEJ75KXuKW5jLOjmQz+2pRbj7qwJOCZ0cVN1hGFKEfkByyJAJQS4Nq8WQ== X-Received: by 2002:a17:906:348f:b0:a3c:536f:b282 with SMTP id g15-20020a170906348f00b00a3c536fb282mr4898274ejb.16.1707757051722; Mon, 12 Feb 2024 08:57:31 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUj43A2maiuJTnwVc646u4zuyTp3Ho2ORSt7ySHSO544gSre6uiJ9YN7B+CSyt+zPZ3PNLHIj+lBYqOyJlHdExCs6ar Received: from maya.cloud.tilaa.com (maya.cloud.tilaa.com. [164.138.29.33]) by smtp.gmail.com with ESMTPSA id li14-20020a170907198e00b00a3c488d79b1sm377954ejc.223.2024.02.12.08.57.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Feb 2024 08:57:31 -0800 (PST) Date: Mon, 12 Feb 2024 17:56:56 +0100 From: Stefano Brivio To: Laurent Vivier Subject: Re: [PATCH 20/24] vhost-user: add vhost-user Message-ID: <20240212175656.78529a94@elisabeth> In-Reply-To: References: <20240202141151.3762941-1-lvivier@redhat.com> <20240202141151.3762941-21-lvivier@redhat.com> <20240212001901.66ada100@elisabeth> Organization: Red Hat X-Mailer: Claws Mail 4.1.1 (GTK 3.24.36; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-ID-Hash: SOR53KCYKIPSSULAK5GAGB7QTM46XCZS X-Message-ID-Hash: SOR53KCYKIPSSULAK5GAGB7QTM46XCZS X-MailFrom: sbrivio@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: David Gibson , passt-dev@passt.top X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Mon, 12 Feb 2024 11:02:14 +0100 Laurent Vivier wrote: > On 2/12/24 03:49, David Gibson wrote: > > On Mon, Feb 12, 2024 at 12:19:01AM +0100, Stefano Brivio wrote: > >> On Fri, 2 Feb 2024 15:11:47 +0100 > >> Laurent Vivier wrote: > >> > >>> add virtio and vhost-user functions to connect with QEMU. > >>> > >>> $ ./passt --vhost-user > >>> > >>> and > >>> > >>> # qemu-system-x86_64 ... -m 4G \ > >>> -object memory-backend-memfd,id=memfd0,share=on,size=4G \ > >>> -numa node,memdev=memfd0 \ > >>> -chardev socket,id=chr0,path=/tmp/passt_1.socket \ > >>> -netdev vhost-user,id=netdev0,chardev=chr0 \ > >>> -device virtio-net,mac=9a:2b:2c:2d:2e:2f,netdev=netdev0 \ > >>> ... > >>> > >>> Signed-off-by: Laurent Vivier > >>> --- > >>> conf.c | 20 ++++++++++++++-- > >>> passt.c | 7 ++++++ > >>> passt.h | 1 + > >>> tap.c | 73 ++++++++++++++++++++++++++++++++++++++++++--------------- > >>> tcp.c | 8 +++++-- > >>> udp.c | 6 +++-- > >>> 6 files changed, 90 insertions(+), 25 deletions(-) > >> This would need a matching change in the man page, passt.1, at least > >> documenting the --vhost-user option and adjusting descriptions about > >> the guest communication interface (look for "UNIX domain" there). > >> > >>> diff --git a/conf.c b/conf.c > >>> index b6a2a1f0fdc3..40aa9519f8a6 100644 > >>> --- a/conf.c > >>> +++ b/conf.c > >>> @@ -44,6 +44,7 @@ > >>> #include "lineread.h" > >>> #include "isolation.h" > >>> #include "log.h" > >>> +#include "vhost_user.h" > >>> > >>> /** > >>> * next_chunk - Return the next piece of a string delimited by a character > >>> @@ -735,9 +736,12 @@ static void print_usage(const char *name, int status) > >>> info( " -I, --ns-ifname NAME namespace interface name"); > >>> info( " default: same interface name as external one"); > >>> } else { > >>> - info( " -s, --socket PATH UNIX domain socket path"); > >>> + info( " -s, --socket, --socket-path PATH UNIX domain socket path"); > >> I don't get the point of --socket-path. It's handled just like -s > >> anyway, right? Why can't it just be -s / --socket? > > I believe the issue is that there's an expected command line interface > > for the vhost server, which uses --socket-path for, well, the socket > > path. Hence adding an alias to the existing passt option. > > > >>> info( " default: probe free path starting from " > >>> UNIX_SOCK_PATH, 1); > >>> + info( " --vhost-user Enable vhost-user mode"); > >>> + info( " UNIX domain socket is provided by -s option"); > >>> + info( " --print-capabilities print back-end capabilities in JSON format"); > >> Instead of introducing a new option, couldn't we have these printed > >> unconditionally with debug()? I guess it's debug-level stuff anyway. > > Likewise, I think this option is expected by the thing which starts > > the vhost server. > > Yes, these parameters are defined in the vhost-user protocol specification: > > https://qemu-project.gitlab.io/qemu/interop/vhost-user.html#backend-program-conventions So, I went through the discussion from which these option names originated: https://patchwork.ozlabs.org/project/qemu-devel/cover/20180713130916.4153-1-marcandre.lureau@redhat.com/#1986839 ...and I don't actually see the point for our case: libvirt and krunvm (pending) have a bit of code to start passt, and so do Podman and rootlesskit for pasta: https://gitlab.com/libvirt/libvirt/-/blob/20a5f77156bb0237269008351ddf285067065516/src/qemu/qemu_passt.c#L183 https://github.com/containers/krunvm/pull/56/commits/5fc42aa4dfde8608320e06192a7d5ec428834bb5#diff-3cd015c5feef5904a99e9a7513340c1e656649037b7442edeed2a799d242ede3R66 https://github.com/containers/common/blob/91e0fac33e22545f6e0d99d41d315075c02576e1/libnetwork/pasta/pasta.go#L56 https://github.com/rootless-containers/rootlesskit/blob/efee459a225b80ace3d51ae39e9b838616c3d652/pkg/network/pasta/pasta.go#L113 where option names are happily open-coded (of course!). That is, I find rather unfeasible that any of these users would switch to some "unified" front-end that would ever need to start passt with a standardised command line. Anyway, okay, the cost isn't much as you already have the code changes, so I guess we can indulge in a bit of... compliance cult and keep all this. -- Stefano