Received: by 10.192.165.156 with SMTP id m28csp176920imm; Tue, 10 Apr 2018 19:13:10 -0700 (PDT) X-Google-Smtp-Source: AIpwx49kNiFS+BFgxBcObKFKANtXYAwGUBr/52+bxHADaU5DmFGMGRWm+M5eTufaQT2m7aq78k9R X-Received: by 10.98.32.87 with SMTP id g84mr2333176pfg.28.1523412789957; Tue, 10 Apr 2018 19:13:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523412789; cv=none; d=google.com; s=arc-20160816; b=yS6mto4QnezyVlc7Yvho0Aswg48UdkOUnpxiR39Loy1nwDJvPrAzQAdd23gImYpopa lMEzl8LKebP4lJazt6ysBbOymya/BU+DAx5IU+fRWAEHbMtRzxErACMUXQQlY2J+z3ZK PvMMglFNOj9dbV0GV4ljUOOZ4RyMgTbcTT6UKT9Pe47jDupzrGWxJIvNASb16iK7hAlb bOtrJd5s5mTDbiCbO7DnVZr3jIuiFst0YYcr/JwheOL1dwaBGjn22Ur14QmiDtYZbOId KYSB2eiexDZCMfdBbDXooejoQ+9q2Cwe76Gfaxt7NvzzOwmoqbQAQtmr3+tv8rfUUiRj rtzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=B1wFOWliVQJrx0RuZsaxnmALPQkP1Xmczih0Px2aQoM=; b=tdUPZJ7tXYYR2VpvDNakruGkuuaDkK+JE2m6SgUAmO1hBmtJqrMa6D7QydwpdJZyKG 5ERbC/vuKzQnh0J0ictJvOx5DvBtPDXnuveTec+C84rHR0oUG562vb8S7zgLKYuUQ4RQ HGVTRAQuAgBYeQTO3Xz2P7eMD9Snv8MRQaO+wVioaBLkrUqQu7/GdN3dScDMzc5cOWeN ofzOr7JGUREZGSKtzAAXb86Bx5XuDO/kaGxgrAk3wwPQTBGo7fcxLPLBtwVRLUblxTVp qehhPOOR1Xp3AVvMzKaLD5heafX2hdksoKVTcywVTok2F46nYO8Qjmn0WdVwGFcfkFBS vE7g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z73-v6si27682plh.35.2018.04.10.19.12.32; Tue, 10 Apr 2018 19:13:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752895AbeDKCIv (ORCPT + 99 others); Tue, 10 Apr 2018 22:08:51 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:33696 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752763AbeDKCIr (ORCPT ); Tue, 10 Apr 2018 22:08:47 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0A901EBFE3; Wed, 11 Apr 2018 02:08:47 +0000 (UTC) Received: from [10.72.12.115] (ovpn-12-115.pek2.redhat.com [10.72.12.115]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 338FE84450; Wed, 11 Apr 2018 02:08:34 +0000 (UTC) Subject: Re: [virtio-dev] Re: [RFC] vhost: introduce mdev based hardware vhost backend To: "Liang, Cunming" , Paolo Bonzini , "Bie, Tiwei" Cc: "mst@redhat.com" , "alex.williamson@redhat.com" , "ddutile@redhat.com" , "Duyck, Alexander H" , "virtio-dev@lists.oasis-open.org" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , "virtualization@lists.linux-foundation.org" , "netdev@vger.kernel.org" , "Daly, Dan" , "Wang, Zhihong" , "Tan, Jianfeng" , "Wang, Xiao W" References: <20180402152330.4158-1-tiwei.bie@intel.com> <622f4bd7-1249-5545-dc5a-5a92b64f5c26@redhat.com> <20180410045723.rftsb7l4l3ip2ioi@debian> <7ee31a12-a370-fc43-82a6-2235f598e970@redhat.com> From: Jason Wang Message-ID: <56f8d47b-48d4-cd4c-6795-21e809efcb1b@redhat.com> Date: Wed, 11 Apr 2018 10:08:32 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Wed, 11 Apr 2018 02:08:47 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Wed, 11 Apr 2018 02:08:47 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'jasowang@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018年04月10日 17:23, Liang, Cunming wrote: > >> -----Original Message----- >> From: Paolo Bonzini [mailto:pbonzini@redhat.com] >> Sent: Tuesday, April 10, 2018 3:52 PM >> To: Bie, Tiwei ; Jason Wang >> Cc: mst@redhat.com; alex.williamson@redhat.com; ddutile@redhat.com; >> Duyck, Alexander H ; virtio-dev@lists.oasis- >> open.org; linux-kernel@vger.kernel.org; kvm@vger.kernel.org; >> virtualization@lists.linux-foundation.org; netdev@vger.kernel.org; Daly, Dan >> ; Liang, Cunming ; Wang, >> Zhihong ; Tan, Jianfeng ; >> Wang, Xiao W >> Subject: Re: [virtio-dev] Re: [RFC] vhost: introduce mdev based hardware >> vhost backend >> >> On 10/04/2018 06:57, Tiwei Bie wrote: >>>> So you just move the abstraction layer from qemu to kernel, and you >>>> still need different drivers in kernel for different device >>>> interfaces of accelerators. This looks even more complex than leaving >>>> it in qemu. As you said, another idea is to implement userspace vhost >>>> backend for accelerators which seems easier and could co-work with >>>> other parts of qemu without inventing new type of messages. >>> I'm not quite sure. Do you think it's acceptable to add various vendor >>> specific hardware drivers in QEMU? >> I think so. We have vendor-specific quirks, and at some point there was an >> idea of using quirks to implement (vendor-specific) live migration support for >> assigned devices. > Vendor-specific quirks of accessing VGA is a small portion. Other major portions are still handled by guest driver. > > While in this case, when saying various vendor specific drivers in QEMU, it says QEMU takes over and provides the entire user space device drivers. Some parts are even not relevant to vhost, they're basic device function enabling. Moreover, it could be different kinds of devices(network/block/...) under vhost. No matter # of vendors or # of types, total LOC is not small. > > The idea is to avoid introducing these extra complexity out of QEMU, keeping vhost adapter simple. As vhost protocol is de factor standard, it leverages kernel device driver to provide the diversity. Changing once in QEMU, then it supports multi-vendor devices whose drivers naturally providing kernel driver there. Let me clarify my question, it's not qemu vs kenrel but userspace vs kernel. It could be a library which could be linked to qemu. Doing it in userspace have the following obvious advantages: - attack surface was limited to userspace - easier to be maintained (compared to kernel driver) - easier to be extended without introducing new userspace/kernel interfaces - not tied to a specific operating system If we want to do it in the kernel, need to consider to unify code between mdev device driver and generic driver. For net driver, maybe we can even consider to do it on top of exist drivers. > > If QEMU is going to build a user space driver framework there, we're open mind on that, even leveraging DPDK as the underlay library. Looking forward to more others' comments from community. I'm doing this now by implementing vhost inside qemu IOThreads. Hope I can post RFC in few months. Thanks > Steve > >> Paolo