From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Rybchenko Subject: Re: [PATCH v7 6/7] eal: add failure handle mechanism for hotplug Date: Mon, 9 Jul 2018 16:50:56 +0300 Message-ID: References: <1498711073-42917-1-git-send-email-jia.guo@intel.com> <1531137666-10351-1-git-send-email-jia.guo@intel.com> <1531137666-10351-7-git-send-email-jia.guo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Cc: , , , To: Jeff Guo , , , , , , , , , , , , , , , Return-path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id C731D1B43A for ; Mon, 9 Jul 2018 15:51:12 +0200 (CEST) In-Reply-To: <1531137666-10351-7-git-send-email-jia.guo@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 09.07.2018 15:01, Jeff Guo wrote: > This patch introduces a failure handle mechanism to handle device > hotplug removal event. > > First it can register sigbus handler when enable device event monitor. Once > sigbus error be captured, it will check the failure address and accordingly > remap the invalid memory for the corresponding device. Besed on this > mechanism, it could guaranty the application not crash when the device be > hotplug out. > > Signed-off-by: Jeff Guo > Acked-by: Shaopeng He > --- > v7->v6: > delete some unused part. > --- > lib/librte_eal/linuxapp/eal/eal_dev.c | 112 +++++++++++++++++++++++++++++++++- > 1 file changed, 111 insertions(+), 1 deletion(-) > > diff --git a/lib/librte_eal/linuxapp/eal/eal_dev.c b/lib/librte_eal/linuxapp/eal/eal_dev.c > index 1cf6aeb..0de3fb7 100644 > --- a/lib/librte_eal/linuxapp/eal/eal_dev.c > +++ b/lib/librte_eal/linuxapp/eal/eal_dev.c > @@ -4,6 +4,8 @@ > > #include > #include > +#include > +#include > #include > #include > > @@ -14,6 +16,10 @@ > #include > #include > #include > +#include > +#include > +#include > +#include > > #include "eal_private.h" > > @@ -23,6 +29,16 @@ static bool monitor_started; > #define EAL_UEV_MSG_LEN 4096 > #define EAL_UEV_MSG_ELEM_LEN 128 > > +/* > + * spinlock for device failure process, protect the bus and the device > + * to avoid race condition. > + */ > +static rte_spinlock_t dev_failure_lock = RTE_SPINLOCK_INITIALIZER; Sorry, it is still too vague why the lock is required. It is just generic words. Please, add details and describe circumstance when it is required.