From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 81623370 for ; Tue, 22 Dec 2015 03:24:32 +0100 (CET) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP; 21 Dec 2015 18:24:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,462,1444719600"; d="scan'208";a="17291748" Received: from yliu-dev.sh.intel.com (HELO yliu-dev) ([10.239.66.49]) by fmsmga004.fm.intel.com with ESMTP; 21 Dec 2015 18:24:29 -0800 Date: Tue, 22 Dec 2015 10:25:41 +0800 From: Yuanhan Liu To: "Xie, Huawei" Message-ID: <20151222022541.GD18863@yliu-dev.sh.intel.com> References: <1449027793-30975-1-git-send-email-yuanhan.liu@linux.intel.com> <1450321921-27799-1-git-send-email-yuanhan.liu@linux.intel.com> <1450321921-27799-2-git-send-email-yuanhan.liu@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Cc: "Michael S. Tsirkin" , "dev@dpdk.org" , Victor Kaplansky Subject: Re: [dpdk-dev] [PATCH v2 1/6] vhost: handle VHOST_USER_SET_LOG_BASE request 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: Tue, 22 Dec 2015 02:24:33 -0000 On Mon, Dec 21, 2015 at 03:32:53PM +0000, Xie, Huawei wrote: > > + > > + /* > > + * mmap from 0 to workaround a hugepage mmap bug: mmap will be > > + * failed when offset is not page size aligned. > > + */ > s /will be failed/will fail/ > mmap will fail when offset is not zero. > Also we only know this workaround is for hugetlbfs. Not sure of other > tmpfs, so mention hugetlbfs here. I have already mentioned "to workaround a __hugepage__ mmap bug"; it's not enough? > > + addr = mmap(0, size + off, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); > > + if (addr == MAP_FAILED) { > > + RTE_LOG(ERR, VHOST_CONFIG, "mmap log base failed!\n"); > > + return -1; > > + } > > + > > + /* TODO: unmap on stop */ > > + dev->log_base = (uint64_t)(uintptr_t)addr + off; > (uint64_t)(uintptr_t)RTE_PTR_ADD(addr, off)? No, addr is of (void *) type, we should cast it to uint64_t type first, before adding it with "off". --yliu > > + dev->log_size = size; > > + > > + return 0; > > +} > > diff --git a/lib/librte_vhost/vhost_user/virtio-net-user.h b/lib/librte_vhost/vhost_user/virtio-net-user.h > > index b82108d..013cf38 100644 > > --- a/lib/librte_vhost/vhost_user/virtio-net-user.h > > +++ b/lib/librte_vhost/vhost_user/virtio-net-user.h > > @@ -49,6 +49,7 @@ void user_set_vring_kick(struct vhost_device_ctx, struct VhostUserMsg *); > > > > void user_set_protocol_features(struct vhost_device_ctx ctx, > > uint64_t protocol_features); > > +int user_set_log_base(struct vhost_device_ctx ctx, struct VhostUserMsg *); > > > > int user_get_vring_base(struct vhost_device_ctx, struct vhost_vring_state *); > > >