From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751823AbdBBOyw (ORCPT ); Thu, 2 Feb 2017 09:54:52 -0500 Received: from smtp.citrix.com ([66.165.176.89]:63342 "EHLO SMTP.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750777AbdBBOyv (ORCPT ); Thu, 2 Feb 2017 09:54:51 -0500 X-IronPort-AV: E=Sophos;i="5.33,325,1477958400"; d="scan'208";a="403783590" Subject: Re: [PATCH] xen-netfront: Improve error handling during initialization To: Boris Ostrovsky References: <1485964222-1501-1-git-send-email-ross.lagerwall@citrix.com> <78bd8aab-69db-30cb-45ac-d12e17870447@oracle.com> CC: , , Juergen Gross , , From: Ross Lagerwall Message-ID: Date: Thu, 2 Feb 2017 14:54:31 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <78bd8aab-69db-30cb-45ac-d12e17870447@oracle.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/01/2017 06:54 PM, Boris Ostrovsky wrote: > On 02/01/2017 10:50 AM, Ross Lagerwall wrote: >> Improve error handling during initialization. This fixes a crash when >> running out of grant refs when creating many queues across many netdevs. >> >> * Delay timer creation so that if initializing a queue fails, the timer >> has not been setup yet. >> * If creating queues fails (i.e. there are no grant refs available), >> call xenbus_dev_fatal() to ensure that the xenbus device is set to the >> closed state. >> * If no queues are created, don't call xennet_disconnect_backend as >> netdev->real_num_tx_queues will not have been set correctly. >> * If setup_netfront() fails, ensure that all the queues created are >> cleaned up, not just those that have been set up. >> * If any queues were set up and an error occurs, call >> xennet_destroy_queues() to stop the timer and clean up the napi context. > > We need to stop the timer in xennet_disconnect_backend(). I sent a patch > a couple of day ago > > https://lists.xenproject.org/archives/html/xen-devel/2017-01/msg03269.html > > but was about to resend it with del_timer_sync() moved after > napi_synchronize(). > OK, but the patch is still relevant since I believe we still need to clean up the napi context in this case (plus the patch fixes a lot of other issues). But I will respin it on top of your patch(es) and re-test it before resending. -- Ross Lagerwall