Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp135214pxj; Wed, 9 Jun 2021 18:56:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyFZVHox3t8Fz72ahA83jajHcIU9Fdpr7cJV3b2pp5pHVV5R+dAGd4WGTLiJaKOjTZ6Q8J+ X-Received: by 2002:a50:8e57:: with SMTP id 23mr2304246edx.354.1623290176136; Wed, 09 Jun 2021 18:56:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623290176; cv=none; d=google.com; s=arc-20160816; b=GezDmJoyET9P0eFvkAL6tXitZ9f/BZ9m0EH2hLaPm91C8Yk3JIoXhkiC6km4tUb4gh 8Q7JIMB0GoRwEY4yH4fs0Qg+P9xejpY0dsXG+gZEv89YgFRdqm4UudorqgUY22aCOggw NH0otVXATPEa327S5T/4I++tgMEUGbzLZG9+hbJPjovVUSXxH7f0PAs4Jo2Mh2M7y+EP ySjpH+UiSvloFmyMfBuoz9X3CdRvPIfHn/ct5sL0NhfuyzJ6wXfuj1KeYnMwmClmGACE QmjJFZV+Es+LCnHihHX6eKTU7IpH4L2nLT7NymkiEfiOc3vylEnekzPpNTlHvIjHgoo3 dG3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=Vz0jGs3iC3Z2zxb/bDk+em2UI3NrnLgN9D+cOWfKhFk=; b=esUH1VXCokjhEi+Gn0f6RSmHFVsGEOdrjqhaprpj1HvCZH7FfByX4/x/ONT2sIzSyu KkluYwTaBQoyz1rs+nXaOwWiBMtW0XEp+s2Rx64Khf26fmdxthwXemUoNbbqyAuXFz6n 1jlPgNBx0yVCr4NRJRFAoucWsJQ3u0y3+O4edNMRbhHEgFao5ohCtN8TBb9Kpp2jwgSy 0+2VqmLopMnMUtZj7qWaQTplV/TXJOkBRMofsAnEHO4+XjEMrJHshH+lXxRCjCAdWj2R 2YC81DmotxMMpFppMFr5QJvq2qyd7sOgIPldxjnyg/tefM2PncsyYb2xB8fyJNTuXD44 WTBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Yrzytv6P; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id eb8si1174489edb.574.2021.06.09.18.55.52; Wed, 09 Jun 2021 18:56:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Yrzytv6P; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229865AbhFJBxI (ORCPT + 99 others); Wed, 9 Jun 2021 21:53:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:53215 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229655AbhFJBxI (ORCPT ); Wed, 9 Jun 2021 21:53:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623289872; 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=Vz0jGs3iC3Z2zxb/bDk+em2UI3NrnLgN9D+cOWfKhFk=; b=Yrzytv6PKW21b4rht+4QPtuF61AOvPhNi4KhJR5Mr3HdZzNN+5a65++AVo6PPiJuSVtZgp fLV2Yz9hn8Q4Kxr+ZKwlAX4gt7fSlqGObUUwKqUg4w6JXFH7FXzTUfZbdzXpQt/M8mb5cK LAYdEB6LlfOOaffJ+TO6CdqRSp8Yp5c= Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-307-fyfpNyg9M3iQ4LsjzMZNjA-1; Wed, 09 Jun 2021 21:51:11 -0400 X-MC-Unique: fyfpNyg9M3iQ4LsjzMZNjA-1 Received: by mail-pg1-f198.google.com with SMTP id b17-20020a63eb510000b029021a1da627beso15414168pgk.12 for ; Wed, 09 Jun 2021 18:51:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=Vz0jGs3iC3Z2zxb/bDk+em2UI3NrnLgN9D+cOWfKhFk=; b=DhxXlt5HMcxXWJfUgDiyZCyXtlWL4pkb2OUrCgMD65Xyj/QhTGtfUlfd7zTXTny5eE gqfPbQhEa8Sd7JQNnR0qojvunPicCv+qgsRBMTndGBY/Cq0yyCzbRJEJ1Nf5ETD+krTM s/Jg94/MbnAC84McKqFFlLDcgNCxsBmyWAdGAZBZQSCx3MJcKaEDdbveUSWsOUkpXJP2 1TLTTz9sIlQNNCR2cuZtzlrlnGsszHuD+DeP84rUBLrvKQo49w97bgRW+uMj/lfxJbAw jAOnF+F9ijSNKuqyNzIeDchZdS3N0sKb6I50+LcqYJpNJn3C02fJ4H+xuvDQghRvo+7O SzBQ== X-Gm-Message-State: AOAM53028UY6rmmtkJnChradn1Ekv4jIcjj90EQQubogRYe4jOEUU4sl gzQWZPDMJB6yp/M6X27alLdhliKSQ/sxbkNznNh9FSztyRuo8xLf6cjHL7thFLgnyp1lNehOE0J jqUiQRxGuK9/fir1ZhIfqdDyvi6715aWyPTNYsL411diWwsyvMntFOF32uwuAau47OdhR0lL9Ol WI X-Received: by 2002:a63:1f57:: with SMTP id q23mr2540940pgm.398.1623289869914; Wed, 09 Jun 2021 18:51:09 -0700 (PDT) X-Received: by 2002:a63:1f57:: with SMTP id q23mr2540893pgm.398.1623289869521; Wed, 09 Jun 2021 18:51:09 -0700 (PDT) Received: from wangxiaodeMacBook-Air.local ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id l3sm846806pgb.77.2021.06.09.18.51.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Jun 2021 18:51:09 -0700 (PDT) Subject: Re: [RFC v1 0/6] virtio/vsock: introduce SOCK_DGRAM support To: Jiang Wang , sgarzare@redhat.com Cc: virtualization@lists.linux-foundation.org, stefanha@redhat.com, mst@redhat.com, arseny.krasnov@kaspersky.com, jhansen@vmware.comments, cong.wang@bytedance.com, duanxiongchun@bytedance.com, xieyongji@bytedance.com, chaiwen.cc@bytedance.com, "David S. Miller" , Jakub Kicinski , Steven Rostedt , Ingo Molnar , Colin Ian King , Jorgen Hansen , Andra Paraschiv , Norbert Slusarek , Lu Wei , Alexander Popov , kvm@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <20210609232501.171257-1-jiang.wang@bytedance.com> From: Jason Wang Message-ID: Date: Thu, 10 Jun 2021 09:50:56 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210609232501.171257-1-jiang.wang@bytedance.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2021/6/10 上午7:24, Jiang Wang 写道: > This patchset implements support of SOCK_DGRAM for virtio > transport. > > Datagram sockets are connectionless and unreliable. To avoid unfair contention > with stream and other sockets, add two more virtqueues and > a new feature bit to indicate if those two new queues exist or not. > > Dgram does not use the existing credit update mechanism for > stream sockets. When sending from the guest/driver, sending packets > synchronously, so the sender will get an error when the virtqueue is full. > When sending from the host/device, send packets asynchronously > because the descriptor memory belongs to the corresponding QEMU > process. What's the use case for the datagram vsock? > > The virtio spec patch is here: > https://www.spinics.net/lists/linux-virtualization/msg50027.html Have a quick glance, I suggest to split mergeable rx buffer into an separate patch. But I think it's time to revisit the idea of unifying the virtio-net and virtio-vsock. Otherwise we're duplicating features and bugs. Thanks > > For those who prefer git repo, here is the link for the linux kernel: > https://github.com/Jiang1155/linux/tree/vsock-dgram-v1 > > qemu patch link: > https://github.com/Jiang1155/qemu/tree/vsock-dgram-v1 > > > To do: > 1. use skb when receiving packets > 2. support multiple transport > 3. support mergeable rx buffer > > > Jiang Wang (6): > virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit > virtio/vsock: add support for virtio datagram > vhost/vsock: add support for vhost dgram. > vsock_test: add tests for vsock dgram > vhost/vsock: add kconfig for vhost dgram support > virtio/vsock: add sysfs for rx buf len for dgram > > drivers/vhost/Kconfig | 8 + > drivers/vhost/vsock.c | 207 ++++++++-- > include/linux/virtio_vsock.h | 9 + > include/net/af_vsock.h | 1 + > .../trace/events/vsock_virtio_transport_common.h | 5 +- > include/uapi/linux/virtio_vsock.h | 4 + > net/vmw_vsock/af_vsock.c | 12 + > net/vmw_vsock/virtio_transport.c | 433 ++++++++++++++++++--- > net/vmw_vsock/virtio_transport_common.c | 184 ++++++++- > tools/testing/vsock/util.c | 105 +++++ > tools/testing/vsock/util.h | 4 + > tools/testing/vsock/vsock_test.c | 195 ++++++++++ > 12 files changed, 1070 insertions(+), 97 deletions(-) >