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 5ACC142942; Fri, 14 Apr 2023 17:30:07 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 26E4C4113D; Fri, 14 Apr 2023 17:30:07 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2075.outbound.protection.outlook.com [40.107.92.75]) by mails.dpdk.org (Postfix) with ESMTP id 3F3F74113D for ; Fri, 14 Apr 2023 17:30:05 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eoDHNcS/aTSjUgkpgAXl9/MHbbxzoKViZaGpRa4+RUKSXb0yXKryst3uBCe/gwM6MlFSb2USYqXKFjfEesuI4IPOUH+I4l3xeWpf9vFkP8L/yL2e6YadPRc670nz7yShDc+b+DyqnT+/SsCvHEQjiAyp6NKEDA2h+a3QUPDDKdOmqt7DO7z2GqbBm7/LggVTVL7ZFGl98TcF5kR5q0gjypcWLrnuoanM0+h3jTfygYfHSfI3XnzkvRo3jr7Yl8chF4DYes5fW40evrTX4njiE4KWREM6gdzbp2e3f3S+aAroEt/5aBMh5zq0zIJrtfIsmDRoVySEr9LV+z7u7yu/gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KCr4hlwRe04h7slUHW25qNDwHs9FyGrTy1+MlDpujXo=; b=MA6P1N9EJ666K+IEY7hqjpIOiL5QIN9wpj0GYvUx+SY3d+8xzCnvqOXzhHzz2bcNZgeerZVAukwm/3doQ+t/rQ2Hbe0L92HSp8bEJ6Nmhr9WfG9jBjaQ8WMpxOCMTkI0HDwtz0JA+ubhqp/f6u1wk1QcIMDhRVkWBDhegwytd45xnxCDKVd6u5bos5XwaX/ZmWO+66i99wKDhpRJ7/AzOkqLK0MPValPonL1YDW4BA8jyOYKV9WRYG0Q9Y7Nk5+0cmuQjkPw3Il2qisDZU1EYxgybmG//FeGZiBmZ9eGPXokrPLg588Z7DIp0ylXmCh+6hDAtVM/omiQ4Hr9BtI6GA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KCr4hlwRe04h7slUHW25qNDwHs9FyGrTy1+MlDpujXo=; b=QQ8XPHwma8pzOcaBkA0VuPbNT+9ORG9dj/0+U0zo70P1FY22432DL4fZ3v2baCiqW4ssknt5qBxZUIUcR4yFwt3N5wtoRTaB7457B14UPsX3+Jj5blY7i0zQ4Qy2ATXYsKfQqYjS45Kd1RmauobFFq4rcoECc7iGD7gjuoK9LZg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by CYYPR12MB8872.namprd12.prod.outlook.com (2603:10b6:930:c8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.38; Fri, 14 Apr 2023 15:30:03 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::5e2c:c0ed:88a6:a4c7]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::5e2c:c0ed:88a6:a4c7%7]) with mapi id 15.20.6298.030; Fri, 14 Apr 2023 15:30:03 +0000 Message-ID: <2a4bd4e7-4ea7-26b4-850e-3dd846c47dfb@amd.com> Date: Fri, 14 Apr 2023 16:29:57 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH] kni: fix build with Linux 6.3 Content-Language: en-US To: David Marchand , Vamsi Attunuru , Kiran Kumar Kokkilagadda , Jerin Jacob Kollanukkaran Cc: dev@dpdk.org, Thomas Monjalon References: <20230228172909.2054386-1-ferruh.yigit@amd.com> From: Ferruh Yigit In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO2P265CA0486.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:13a::11) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|CYYPR12MB8872:EE_ X-MS-Office365-Filtering-Correlation-Id: 7382eeaa-4ecb-4b1a-7f27-08db3cfd1ddc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g68W/01BOtYToQPQg7cQs0tpr3WlYXjIKUr8fQHuFfTiz0v2Qx9DV1e74CMgwCscd94dkJfrHVjN1dL96BIG0DMHYOZxx22iwOZObULF8N151PgvihuN+7Q4dxNSKoXQcd3cxDAjA+QTQHyvZVjXzliE4Fi84FYVj3ocITuSMX3sRM9nT9vFzUoDFl5hZCGhXJIAHH0xmiuSHEd9j88V5JLVhfgfUNzptXAZzptRLpCLEPD8gkb/YqZiVMRc+lBE/gTM+xtULf5QPGOWcEM5OzLmhX20/ftNCmHClyCboiz8FSRvJNWCd8gmbcnzGMT/9pyjvS3Yf4qCJOllaUIX4Ku7Es3YMkVTl2q2DafARtFoMyJNFB5RQQGEniyuppAQgjJxb2BuQP6w0PyTEMnQrNv+NSQWC8uh4nDMqh3adaAziw+lH11b3fMb/izYtoU2WPfgtlNBcLCS5bzGxuw3bR3/v6v4mLzqTKBJOUhDx+rbmJLUmZ/UoSbssEKLui9E1D8XHbrziUKNUcq6BG+lVAS8Hwpw8HKURuZkcBn+UCjJx5F9a9CURcZxk5zpxH9t6Ok+q5fz3XJfWYoLzDOCNHjHyYUACh0HU/zFBxf3W6QLSBHyJxkaXpbCN2ew4V9IkcEwhYjQI/IBh07tGGzoog== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(39860400002)(366004)(396003)(346002)(376002)(451199021)(31686004)(478600001)(36756003)(31696002)(83380400001)(38100700002)(86362001)(2616005)(2906002)(66556008)(5660300002)(6512007)(110136005)(6666004)(44832011)(6486002)(316002)(6506007)(53546011)(26005)(186003)(66476007)(41300700001)(8676002)(8936002)(4326008)(66946007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dHJTMVJxcndlMlVRMVpDOFRKY0cvbEZMNWpMK3liRXIreTFseU1FOTQveWxX?= =?utf-8?B?N09ISHdoYUV4YUJCNS95Nko1YWV3WVpzYlRCeThIcG1BdDVMa3B1Q3hueWlz?= =?utf-8?B?b0lXajFUM2F5MVJidzhDOW1ZK1pBbDhERERhb1pmQ3h1SXFhUlNIcEpBOEJi?= =?utf-8?B?OEMveHJUTFZhMExiUldyZktJKy9ESm9nbWNFS3hRbGpBWWJIaXhCTWNZM0J6?= =?utf-8?B?eGFhd2E1bkRMOTltRDExOWtMaDZDT3Q3N04rcXB2clI3dFZSMnVYenY1dDUr?= =?utf-8?B?d0hPcnZtdHFidlVuQVRVSkpmM0lTWVNydXpUV0UxYUZ2UXo1OGhZays4U1Vs?= =?utf-8?B?RVBBSW94UzNyeGdOb3BCcFhsMzBPWGN5aDVsQzB5YXhick5iSGZSQW51T1N3?= =?utf-8?B?LzlLbUxJVTdOVGV3RGtYaU1KVW1FS2NYNk1sb0pvNFIxUnNLUmhRSXk5TW5I?= =?utf-8?B?WGtoaUlpbys2UXQrQ0pkKzdCaDRQOXViNlNQZzQvaFRKYkppUU92QTc2eTQ5?= =?utf-8?B?TnN4TlprSWsvRnd3bGJ6RmhVMkJJSFhNdXgwWUExajFDak5Gd1VBWjl0M1hJ?= =?utf-8?B?SUU3cGRHRCtZbVRyUGk1QUc4eW9BWThRa1B6NkRmTGRLZDlzakZhL1ZEcjhH?= =?utf-8?B?Tlh6UEdjQWY4YmhTZXdkcCtJZ0xTR21rdHVGbHNjd2kydHdBNkYwUVhpSnBw?= =?utf-8?B?TXpzVWJxQmZTRnBnMVRpMmk4dG5KcXBQdnZGcVJFVy9lM0padjFjRTloZjlN?= =?utf-8?B?d2FSY2s3VEpJekhORU5wVFkzRWpRSDgxaUxadTNPV1UrdEJQYmZNaElhSjIx?= =?utf-8?B?Wmdaa2NWTWp0d3c0Q3BCL3luSnpwV2NQRHB1QWsrTmR0UndSbWpKelhlcW9N?= =?utf-8?B?blVwK2d4UGpCQUsvWkRxRk4yWCtobWU2OERLdVJsRDVKL2pyTDlKSVVCaUlr?= =?utf-8?B?RmFDMVM3UnB5UHJtdHBmZzJLYzZWZlY4akhoUm9FWnV1UE82a3o0RWQvT0pS?= =?utf-8?B?TkhyNzdXK0I2RHZEdTZwL0xQUy9vLzhxNjhOTndKcit2b2Vqa1VMeDFsZmZJ?= =?utf-8?B?RCtiUkd2bVFua3BWaG1FSnlOb0Uvb3QwSkF3NjBlWG9tU3dNSHlBYkU2ek9P?= =?utf-8?B?VkJPL2tpejZLMGxXT2trOTc1NFVYVjVmT2FXam4zWTkrdjN1dTRLS2dYVnY0?= =?utf-8?B?eGJYUlZpc2FvbjNTZ2NJRjYycFhoVWp5cUlocVRtSDNES01EdWNGTmlhOTdZ?= =?utf-8?B?ejh3QTBTS3Avb2h5UzdlSDRJNVVrb0VSWFZDQU1yMGY4YkdPNGRCQjlNR3BD?= =?utf-8?B?bFpJZzFqSzRJM2pmZFYvVGk5aW40cWo1a0ppR0kzTHhhY2lmS0lBOE12TUs1?= =?utf-8?B?b2gvWWRkR0V2RHJzTzAwQTlOS1RqR3BDMjVnUURSTVhwWlJxNFZxQ3kxT1V2?= =?utf-8?B?MVpLM2JSM1p1VGZHdXpBRjloaUp0RGdGRUkyU2ZFSXNWaEd0UGhYdENHUEV1?= =?utf-8?B?M2ovREVCTklqaEkycVNoc1JsNDM2TUF0NEx5aU5nMHZ2MEFoYXZsNHZMbDQz?= =?utf-8?B?MVJseGlaTEFvby9QcC8rdk1lYjV1VVY0eSszNndrbkNodmVoVHAvMlpGZngv?= =?utf-8?B?Z2t6eUZGbkJ5YjFLYzNjWHhjNTIvdENBaXJvWnlub1dXOTVsR0NKek1UZnF5?= =?utf-8?B?b2ZPSmdwTWsrWnk4OWlJbHRIdHdFby9SMW8wMXc5MkNwVjhSdXVCQit0ZUhu?= =?utf-8?B?a2RoaENIRkIrNjhkcUovS2srM1VYUm80WndiUWFZUDAya0t3R1V1TFpkbjRK?= =?utf-8?B?UDJBbFd6T2dJTHg4d3RmYWdjV2t3TlJZVzVuc29LUm5kbkpkV2pFc0pRSWhv?= =?utf-8?B?cFE3aENqQXRLWTRZaGk0YUljdURsd3IzcHdVcEc0U1ZRZ2sxdTJaZTAwQmgv?= =?utf-8?B?N3BBeGtEWVNuQUlQOVBOcjJFTldqaENuUkxFa2d2L2VpQitLeWxlblQvOWZL?= =?utf-8?B?QVRiamVROFBxblJlajJ1aDdyaUpGNmhXRHI1aVF1Snk1VHBUY2hDc3ZQejR4?= =?utf-8?B?anc3TUZPUW9XZ1JvSDVlVFpVQ3ExWXppUGpwRElXN0x2R05kODQrcUNSUHNy?= =?utf-8?Q?1Jgsvq6c+jpMsWzpOAxM2voOL?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7382eeaa-4ecb-4b1a-7f27-08db3cfd1ddc X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2023 15:30:03.0870 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /+DadCJKyT9K2oGR/vc3uSLlAXGlTuXGzSxlE7VZeXSukBnKQwn6gHXfddXBhbrC X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8872 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 On 3/20/2023 1:01 PM, David Marchand wrote: > On Mon, Mar 20, 2023 at 1:10 PM David Marchand > wrote: >> >> On Tue, Feb 28, 2023 at 9:45 PM David Marchand >> wrote: >>> >>> On Tue, Feb 28, 2023 at 6:29 PM Ferruh Yigit wrote: >>>> >>>> KNI calls `get_user_pages_remote()` API which is using `FOLL_TOUCH` >>>> flag, but `FOLL_TOUCH` is no more in public headers since v6.3, >>>> causing a build error. >>> >>> Something looks strange with what kni was doing. >>> >>> Looking at get_user_pages_remote implementation, I see it internally >>> passes FOLL_TOUCH in addition to passed gup_flags. >>> And looking at FOLL_TOUCH definition, it seems natural (to me) that >>> this flag would be handled internally. >>> >>> Maybe it changed over time... but then the question is when did >>> passing FOLL_TOUCH become unneeded? >> >> Here is some more info. >> >> get_user_pages_remote() was added in kernel commit 1e9877902dc7 >> ("mm/gup: Introduce get_user_pages_remote()"). >> At this time, it was passing the FOLL_TOUCH flag internally. >> >> +long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm, >> + unsigned long start, unsigned long nr_pages, >> + int write, int force, struct page **pages, >> + struct vm_area_struct **vmas) >> { >> return __get_user_pages_locked(tsk, mm, start, nr_pages, write, force, >> - pages, vmas, NULL, false, FOLL_TOUCH); >> + pages, vmas, NULL, false, >> + FOLL_TOUCH | FOLL_REMOTE); >> +} >> +EXPORT_SYMBOL(get_user_pages_remote); >> >> get_user_pages_remote() later gained the ability to pass gup flags in >> kernel commit 9beae1ea8930 ("mm: replace get_user_pages_remote() >> write/force parameters with gup_flags"). >> But FOLL_TOUCH was still added internally. >> >> long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm, >> unsigned long start, unsigned long nr_pages, >> - int write, int force, struct page **pages, >> + unsigned int gup_flags, struct page **pages, >> struct vm_area_struct **vmas) >> { >> - unsigned int flags = FOLL_TOUCH | FOLL_REMOTE; >> - >> - if (write) >> - flags |= FOLL_WRITE; >> - if (force) >> - flags |= FOLL_FORCE; >> - >> return __get_user_pages_locked(tsk, mm, start, nr_pages, pages, vmas, >> - NULL, false, flags); >> + NULL, false, >> + gup_flags | FOLL_TOUCH | FOLL_REMOTE); >> } >> >> >> There were other changes in this area of the kernel code, but I did >> not notice a change in relation with FOLL_TOUCH. >> >> So I think the dpdk commit e73831dc6c26 ("kni: support userspace VA") >> uselessly introduced call to this flag and we can remove it. >> Adding author and reviewers of this change. > > Alternatively, we could go with passing 0 in flags when FOLL_TOUCH is > not exported. > Something like: > > diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h > index 7aa6cd9fca..3164a48971 100644 > --- a/kernel/linux/kni/compat.h > +++ b/kernel/linux/kni/compat.h > @@ -129,6 +129,14 @@ > */ > #if KERNEL_VERSION(4, 10, 0) <= LINUX_VERSION_CODE > #define HAVE_IOVA_TO_KVA_MAPPING_SUPPORT > + > +/* > + * get_user_pages_remote() should not require the flag FOLL_TOUCH to be passed. > + * Simply pass it as 0 when this flag is internal and not exported anymore. > + */ > +#ifndef FOLL_TOUCH > +#define FOLL_TOUCH 0 > +#endif > #endif > > #if KERNEL_VERSION(5, 6, 0) <= LINUX_VERSION_CODE || \ > > In KNI, 'get_user_pages_remote()' API is called after kernel version 4.10 and after that point 'FOLL_TOUCH' is set internally anyway as you highlighted. So I think we can remove setting 'FOLL_TOUCH' for all cases instead of defining it internally, I have sent v2 according this.