Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3301529ybl; Mon, 20 Jan 2020 21:04:29 -0800 (PST) X-Google-Smtp-Source: APXvYqxnOpKI75lM9fJXAQLWS/z1Jzpehcj7TSSaxkaoqEUrM/muZk8sMtvjG9Y7vRLERQBvPDzX X-Received: by 2002:aca:6108:: with SMTP id v8mr1643795oib.96.1579583069695; Mon, 20 Jan 2020 21:04:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579583069; cv=none; d=google.com; s=arc-20160816; b=AJvDxob7tjcPERDfOGFlSSO3SDX0TaSTSCfXL0yqU77Lh+xtmIPOFmqfuwwazCpnD7 q3KK6kxaMPThB/3w2EnbLldhymR5zpgj2bDfi+Uj5VCcSwgmN3f1+CSjjtADi9Y0i/N6 wk2Gwl0edAu7zDKIueon4eKERDJoIKzhdog72bqjOGtrG/9QG/oWFK5j4Vy9Ut99hZ+r 3dgPTLTxjFBiuogYTMddT8/su5IgVdjK5UXnR/s7IhoXBQO+B8TjWdN3OSyog8HLXfT1 lRcSch5HD1/LBVbm5MS7HA0/9TiWZW0wAPbQ4Jc+qiVmfmBjwN/Nh4YvlqYEzEQdvmnm a1Yg== 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; bh=eunQ49Ho1xdDWMWysiywDk3G/LWaWSbJMkQGSSi8Mi0=; b=p1VFqkxyqw483vFZUI5Emc5UrMJLA4zNUPBqKN02gCSCRtKjGPDnTlQr76CdirQkbT 2pXA8esLXhHHW91gk6NeyrepzkA0bL4kZzhRwOHgbZZ17ZTTlEcP6zchI4XtXpUm0Vpj qk5Vz3r52prV+uOktQz7x4TPDFjxNUnTZPWCdN0F6/rEvJ03kT2YLKeWl8NlwXDSCGMP jt/Oixlm2fArzauCALvCJ6hD/3KOtNSPLuocoNcxIgwnOnQU1/gYB8FaJytbpoD/CfUF /sqZy1AJWb/8UqxhGACVWUSRCUH4rS4tN9HIcbFI4pdGLwy/tHnBRWgSb1LiW+X6NxKU D+gA== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 38si22490710otj.136.2020.01.20.21.04.16; Mon, 20 Jan 2020 21:04:29 -0800 (PST) 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726729AbgAUFDW (ORCPT + 99 others); Tue, 21 Jan 2020 00:03:22 -0500 Received: from mga03.intel.com ([134.134.136.65]:25287 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725789AbgAUFDW (ORCPT ); Tue, 21 Jan 2020 00:03:22 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jan 2020 21:03:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,344,1574150400"; d="scan'208";a="215417618" Received: from liujing-mobl1.ccr.corp.intel.com (HELO [10.255.28.166]) ([10.255.28.166]) by orsmga007.jf.intel.com with ESMTP; 20 Jan 2020 21:03:18 -0800 Subject: Re: [virtio-dev] Re: [PATCH v1 2/2] virtio-mmio: add features for virtio-mmio specification version 3 To: "Michael S. Tsirkin" , Zha Bin Cc: linux-kernel@vger.kernel.org, jasowang@redhat.com, slp@redhat.com, virtio-dev@lists.oasis-open.org, gerry@linux.alibaba.com, jing2.liu@intel.com, chao.p.peng@intel.com References: <20200105054412-mutt-send-email-mst@kernel.org> From: "Liu, Jing2" Message-ID: Date: Tue, 21 Jan 2020 13:03:17 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <20200105054412-mutt-send-email-mst@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/5/2020 7:04 PM, Michael S. Tsirkin wrote: > >> >> struct virtio_mmio_vq_info { >> @@ -101,6 +107,8 @@ struct virtio_mmio_vq_info { >> }; >> >> >> +static void vm_free_msi_irqs(struct virtio_device *vdev); >> +static int vm_request_msi_vectors(struct virtio_device *vdev, int nirqs); >> >> /* Configuration interface */ >> >> @@ -273,12 +281,28 @@ static bool vm_notify(struct virtqueue *vq) >> { >> struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); >> >> + if (vm_dev->version == 3) { >> + int offset = vm_dev->doorbell_base + >> + vm_dev->doorbell_scale * vq->index; >> + writel(vq->index, vm_dev->base + offset); >> + } else >> /* We write the queue's selector into the notification register to >> * signal the other end */ >> - writel(vq->index, vm_dev->base + VIRTIO_MMIO_QUEUE_NOTIFY); >> + writel(vq->index, vm_dev->base + VIRTIO_MMIO_QUEUE_NOTIFY); >> + >> return true; >> } > You might want to support VIRTIO_F_NOTIFICATION_DATA too. > Yes, the feature is new in virtio1.1 and the kernel has not defined and implemented it yet. To implement it for both PCI and MMIO, maybe it would be good to work a separate patch set later? BTW, we are working on v2 and will send out later. Thanks, Jing