From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 23E1A4AAD for ; Mon, 14 Mar 2016 03:08:22 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP; 13 Mar 2016 19:08:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,334,1455004800"; d="scan'208";a="763487489" Received: from yliu-dev.sh.intel.com (HELO yliu-dev) ([10.239.66.49]) by orsmga003.jf.intel.com with ESMTP; 13 Mar 2016 19:08:21 -0700 Date: Mon, 14 Mar 2016 10:08:58 +0800 From: Yuanhan Liu To: Tetsuya Mukawa Cc: dev@dpdk.org, jianfeng.tan@intel.com, huawei.xie@intel.com Message-ID: <20160314020858.GJ979@yliu-dev.sh.intel.com> References: <1457590462-3680-1-git-send-email-mukawa@igel.co.jp> <1457593565-16240-1-git-send-email-mukawa@igel.co.jp> <20160311071907.GI979@yliu-dev.sh.intel.com> <56E619C6.6060809@igel.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56E619C6.6060809@igel.co.jp> User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [dpdk-dev] [PATCH v2] vhost: Fix default value of kickfd and callfd X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Mar 2016 02:08:23 -0000 On Mon, Mar 14, 2016 at 10:54:14AM +0900, Tetsuya Mukawa wrote: > On 2016/03/11 16:19, Yuanhan Liu wrote: > > On Thu, Mar 10, 2016 at 04:06:05PM +0900, Tetsuya Mukawa wrote: > >> Currently, default values of kickfd and callfd are -1. > >> If the values are -1, current code guesses kickfd and callfd haven't > >> been initialized yet. And vhost library will guess the virtqueue isn't > >> ready for processing. > >> But callfd and kickfd will be set as -1 when "--enable-kvm" > >> isn't specified in QEMU command line. It means we cannot treat -1 as > >> uninitialized state. The patch changes default values to -2. And the > >> patch defines -2 as VIRTIO_UNINITIALIZED_EVENTFD. > > This looks more like a workaround to me. > > > Hi Yuanhan, > > Sorry for late reply. > I have checked QEMU documentation, and found below. > > ---------- > * VHOST_USER_SET_VRING_CALL > > Id: 14 > Equivalent ioctl: VHOST_SET_VRING_CALL > Master payload: u64 > > Set the event file descriptor to signal when buffers are used. It > is passed in the ancillary data. > Bits (0-7) of the payload contain the vring index. Bit 8 is the > invalid FD flag. > ---------- > > VHOST_USER_SET_VRING_KICK has almost same description. > I will check this invalid flag, and if it works for our case, then will > use it. > How about it? Yeah, that indeed sounds much better. --yliu > > > Besides, this patch would make > > following fail: > > > > eventfd_write(vq->callfd, (eventfd_t)1); > > It's my fault. > I thought above case should be blocked by virtio spec itself. So just > leave it. > But eventfd is came from vhost spec, so VRING_AVAIL_F_NO_INTERRUPT might > be set even when kickfd and callfd are -1. > Thanks for checking it. > > Tetsuya > > > --yliu