From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id D420E376C for ; Tue, 18 Jul 2017 18:08:38 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jul 2017 09:08:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,378,1496127600"; d="scan'208";a="109318472" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.255.138.52]) ([10.255.138.52]) by orsmga004.jf.intel.com with ESMTP; 18 Jul 2017 09:08:34 -0700 To: Gaetan Rivet , dev@dpdk.org References: From: Ferruh Yigit Message-ID: Date: Tue, 18 Jul 2017 17:08:32 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v11 00/11] introduce fail-safe PMD 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, 18 Jul 2017 16:08:39 -0000 On 7/18/2017 1:48 PM, Gaetan Rivet wrote: > This PMD intercepts and manages Ethernet device removal events issued by > slave PMDs and re-initializes them transparently when brought back so that > existing applications do not need to be modified to benefit from true > hot-plugging support. > > The stacked PMD approach shares many similarities with the bonding PMD but > with a different purpose. While bonding provides the ability to group > several links into a single logical device for enhanced throughput and > supports fail-over at link level, this one manages the sudden disappearance > of the underlying device; it guarantees applications face a valid device in > working order at all times. > > Each fail-safe instance is configured to run atop one or several > devices, with one defined as the preferred device. Hot-plug events are > handled on all of them, and Tx is always directed to the preferred device > if present or to the next available failover device (Rx is always performed > on all devices for simplicity). > > Moreover, the configured slaves (preferred or failover) do not need to be > present at initialization time and may appear later. > > Slaves configuration is continuously synchronized with that of the virtual > device, which exposes their common set of capabilities to the application. > Failure to apply the current configuration state to a slave for any reason > simply reschedules its initialization. > > This patchset depends on: > > [dpdk-dev] [PATCH v4 0/8] fix hotplug API > http://dpdk.org/ml/archives/dev/2017-July/071340.html > > v1 --> v2: > > - Wrote documentation > - Fixed commit logs, signed-off-by > - Added LSC event support > - A few minor fixes > > v2 --> v3: > > - Numerous bug fixes. > - Complete sub-EAL rework to follow new bus API. > - burst protection on sub removal. > - more flexible sub definition. > - flow isolated mode support. > > v3 --> v4: > > - Split back commits > net/failsafe: add fast burst functions > net/failsafe: support device removal > That were squashed by error during a rebase > - Fix segfault on port plugin > - Fix isolate mode support for MLX4 ports plugin > > v4 --> v5: > > - Follow new plug / unplug API. > > v5 --> v6: > > - Follow new hotplug API. > - Improve usability of hotplug API. > - Fix rte_dev hotplug API implementation. > - Introduce rte_eal_devargs_rmv API as EXPERIMENTAL. > - Use it to clean up resources on hotplug_remove. > - Fix hotplug implementation and support un pci bus. > The scan was not idempotent, nor clean. > Neither were the device fields. > - Implement plug operation for vdev bus. > This is needed for hotplug support and to make the EAL > independent from vdev-specific API. > - Remove useless parameters from plug / unplug API. > > This patchset is fairly big and complex. The hotplug API has been rushed and > has never been tested outside of the special case of vdev bus. > > These evolutions are proposed alongside this PMD as only this PMD allows to test > this API at the moment, and without those evolutions this PMD cannot be used. > > v6 --> v7 > > - Split the series in three, with > vlan filter configuration store standing alone > Hotplug API fixes separated > Fail-safe PMD on its own. > > These changes should ease integration. > > v7 --> v8 > > - Fix usage examples in documentation. > - Use rte_eth_dev_allocated when relevant. > > v8 --> v9 > > - Use calloc instead of rte_realloc for command line parsing. > - Include errno only when necessary. > > v9 --> v10 > > - Fix rte_flow description double-free issue. > Thanks Raslan for finding the issue :) > - Use RTE_ASSERT instead of assert. > Integrate the debug log of the fail-safe to > RTE_LOG_DEBUG macro as well, allowing dynamic log levels. > - Remove devices post-state-sync during slave upkeep, > to avoid a useless early probe attempt. > > v10 --> v11 > > - Added Glossary in documentation. > - Fixed issues oulined in [1]. > - Removed Rx offload advertizement in feature matrix. > > [1]: http://dpdk.org/ml/archives/dev/2017-July/071406.html > > Gaetan Rivet (11): > ethdev: add deferred intermediate device state > ethdev: count devices consistently > net/failsafe: add fail-safe PMD > net/failsafe: add plug-in support > net/failsafe: add flexible device definition > net/failsafe: support flow API > net/failsafe: support Rx offload capabilities > net/failsafe: add fast burst functions > net/failsafe: support device removal > net/failsafe: support link status change event > net/failsafe: support flow API isolation mode Series applied to dpdk-next-net/master, thanks.