From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 8BD3C1B53; Tue, 28 Nov 2017 13:09:50 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D65A94ACA4; Tue, 28 Nov 2017 12:09:49 +0000 (UTC) Received: from [10.36.112.54] (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 884E660602; Tue, 28 Nov 2017 12:09:47 +0000 (UTC) To: Jianfeng Tan , dev@dpdk.org Cc: stable@dpdk.org, Yuanhan Liu , Yi Yang References: <1510746068-143223-1-git-send-email-jianfeng.tan@intel.com> From: Maxime Coquelin Message-ID: Date: Tue, 28 Nov 2017 13:09:29 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <1510746068-143223-1-git-send-email-jianfeng.tan@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 28 Nov 2017 12:09:49 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH] vhost: fix segfault as handle set_mem_table message X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Nov 2017 12:09:50 -0000 On 11/15/2017 12:41 PM, Jianfeng Tan wrote: > In a running VM, operations (like device attach/detach) will > trigger the QEMU to resend set_mem_table to vhost-user backend. > > DPDK vhost-user handles this message rudely by unmap all existing > regions and map new ones. This might lead to segfault if there > is pmd thread just trying to touch those unmapped memory regions. > > But for most cases, except VM memory hotplug, QEMU still sends the > set_mem_table message even the memory regions are not changed as > QEMU vhost-user filters out those not backed by file (fd > 0). > > To fix this case, we add a check in the handler to see if the > memory regions are really changed; if not, we just keep old memory > regions. > > Fixes: 8f972312b8f4 ("vhost: support vhost-user") > > CC: stable@dpdk.org > > CC: Yuanhan Liu > CC: Maxime Coquelin > > Reported-by: Yang Zhang > Reported-by: Xin Long > Signed-off-by: Yi Yang > Signed-off-by: Jianfeng Tan > --- > lib/librte_vhost/vhost_user.c | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) Reviewed-by: Maxime Coquelin Thanks, Maxime