From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 61BDDA00C2; Tue, 9 Aug 2022 13:44:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 542EE427EA; Tue, 9 Aug 2022 13:44:52 +0200 (CEST) Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by mails.dpdk.org (Postfix) with ESMTP id 7A4E540143 for ; Tue, 9 Aug 2022 13:44:50 +0200 (CEST) Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.54]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4M2B424HJKz1M8cV; Tue, 9 Aug 2022 19:41:38 +0800 (CST) Received: from kwepemm600004.china.huawei.com (7.193.23.242) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 9 Aug 2022 19:44:48 +0800 Received: from [10.67.103.231] (10.67.103.231) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 9 Aug 2022 19:44:48 +0800 Message-ID: Date: Tue, 9 Aug 2022 19:44:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH] usertools: fix bind failure from dpdk to kernel To: Stephen Hemminger CC: , , , , , References: <20220805031022.9795-1-lihuisong@huawei.com> <20220805083529.5ca3233e@hermes.local> From: "lihuisong (C)" In-Reply-To: <20220805083529.5ca3233e@hermes.local> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.103.231] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 在 2022/8/5 23:35, Stephen Hemminger 写道: > On Fri, 5 Aug 2022 11:10:22 +0800 > Huisong Li wrote: > >> Currently, the steps for binding device from dpdk driver to kernel >> driver is as follows: >> echo $BDF > /sys/bus/pci/drivers/vfio-pci/unbind >> echo $BDF > /sys/bus/pci/drivers/$kernel_driver/bind >> >> This steps cannot bind device from dpdk driver to kernel driver on >> platform with kernel 5.19. The 'driver_override' must be specify >> kernel driver before binding device to kernel driver. >> >> Fixes: 720b7a058260 ("usertools: fix device binding with kernel tools") >> Cc: stable@dpdk.org >> >> Signed-off-by: Huisong Li > Not sure exactly what you did and why. > The patch seems to just remove the check that the driver > is in the set of dpdk_drivers. > . Currently, the end of the operation binding device from kernel driver to dpdk driver write '\00' to driver_override file so as to this device can be bound to any other driver. And perform following steps to bind device dpdk driver to kernel driver: echo $BDF > /sys/bus/pci/drivers/vfio-pci/unbind echo $BDF > /sys/bus/pci/drivers/$kernel_driver/bind However, due to the patch[1] merged into 5.19 kernel, 'driver_override' in the pci_dev is no longer NULL by writing '\00' to driver_override file. This causes PCI match device failure and the device will never be bound to their kernel driver. In 5.19 kernel, I found that dpdk-devbind.py need to write '\n' to driver_override file if we want to bind divce to any other driver. But I think it is not necessary to write empty to driver_override file. After all, the device has only one kernel driver, and binding to dpdk driver(like, vfio-pci) must specify driver_override. [1] 23d99baf9d72 ("PCI: Use driver_set_override() instead of open-coding")