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 DD1D442674 for ; Fri, 29 Sep 2023 16:47:20 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D253340EE1; Fri, 29 Sep 2023 16:47:20 +0200 (CEST) Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) by mails.dpdk.org (Postfix) with ESMTP id 13AAD402AA; Fri, 29 Sep 2023 16:47:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=17782; q=dns/txt; s=iport; t=1695998838; x=1697208438; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=GJZj1NGPhWGSuhzTbAus/T/fXO73ttY6TBrE94tzYy0=; b=TzmSxk4cst/5HyYpZUZbQFqZiI/LwQUHvvpYG/TuLQ5momyyWkoECSfq TZlx3xyizfXPzGmtu+knSW7bxs/d5VJQMx3OQvRz1QXjtpryLxlrnnLjm 7CfEZxyK7JPF44R0CwvHjPaV7EQ0bODttEOLvylvan4iNvj8JLhksg5ps 0=; X-CSE-ConnectionGUID: y+NKgdEQSbyp3DQ120n7FA== X-CSE-MsgGUID: TLY5NnlyQ5aYURaqE2kEyg== X-IPAS-Result: =?us-ascii?q?A0BAAADr4hZlmIoNJK1aHAEBAQEBAQcBARIBAQQEAQFAJ?= =?us-ascii?q?YEYBQEBCwGBMzFSdwJZKhJHiB4DhS2IYwOXLYZPgSUDVg8BAQENAQFEBAEBh?= =?us-ascii?q?QcChwsCJjYHDgECAgIBAQEBAwIDAQEBAQEBAQIBAQUBAQECAQcEFAEBAQEBA?= =?us-ascii?q?QEBHhkFDhAnhTsBByUNhkkBAQEBAxIVGQEBNwEPAgEIEQMBAi8yHQgCBAENB?= =?us-ascii?q?QgaglcEAQGCFhQDMQMBqA0BgUACiih4gQEzgQGCCQEBBgQFsmwJgUgBiAkBg?= =?us-ascii?q?U6IOCcbgUlEgRVDeYFvPoJiAoFiHoN0gi+JR4U+BQIygiaCP4EXizgqgQgIX?= =?us-ascii?q?IFqPQINVAsLXYERUTiBOwICEScSFEdwHQMHA4EEECsHBC8bBwYJFhgVJQZRB?= =?us-ascii?q?C0kCRMSPgSBZ4FRCoEGPxEOEYJEIgIHNjYZS4JbCRUGOgRKdhArBBQXgQ0IB?= =?us-ascii?q?GofFR42ERIXDQMIdh0CESM8AwUDBDYKFQ0LIQUUQwNHBkwLAwIcBQMDBIE2B?= =?us-ascii?q?Q8eAhAaBg4nAwMZTgIQFAM+AwMGAwsyAzBXSwxbA0QdQAMLbT01Bg4bBQRkW?= =?us-ascii?q?QWhcAqBB4FyawYBgQ+BeDBCCS+hHKMkCoQMoT0XokmHGJgyIKd/AgQCBAUCD?= =?us-ascii?q?gEBBoFqCSoPgUxwFYMiUhkPgTaGaIYCCQMNCYNWjzwBPHY7AgcLAQEDCYtJA?= =?us-ascii?q?QE?= IronPort-PHdr: A9a23:OtdkDRaFgWhkZr43NQPRRhP/LTDjhN3EVzX9orI9gL5IN6O78IunZ QrU5O5mixnCWoCIo/5Hiu+Dq6n7QiRA+peOtnkebYZBHwEIk8QYngEsQYaFBET3IeSsbnkSF 8VZX1gj9Ha+YgBOAMirX1TJuTWp6CIKXBD2NA57POPwT4Lbkcm10Mi5+obYZENDgz/uKb93J Q+9+B3YrdJewZM3M7s40BLPvnpOdqxaxHg9I1WVkle06pK7/YVo9GJbvPdJyg== IronPort-Data: A9a23:NwQa06g7rAacoeuQDoxeF5CGX161VxAKZh0ujC45NGQN5FlHY01je htvWGmPaP2PNzajeo1/Oovko09V7ZWBx4BiSlBr+S5jQi1jpJueD7x1DKtf0wB+jyHnZBg6h ynLQoCYdKjYdleF+1H1dOCn9CEgvU2xbuKUIPbePSxsThNTRi4kiBZy88Y0mYcAbeKRW2thg vus5ZWEULOZ82QsaDlMuvjS8EkHUMna4Vv0gHRvPZing3eG/5UlJMp3Db28KXL+Xr5VEoaSL woU5Ojklo9x105F5uKNyt4XQGVTKlLhFVTmZk5tZkSXqkMqShrefUoMHKF0hU9/011llj3qo TlHncTYpQwBZsUglAmBOvVVO3kWAEFIxFPICWn8l++cw2D/SHH9265CNRhsZYtH1M8iVAmi9 dRAQNwMRhmHg+Tzy7WhR6wxwM8iN8LseogYvxmMzxmAUq1gGs6FGv6MvIQItNszrpgm8fL2a 8MHZDhoRB/BeBZIfFwQDfrSmc/x2CWvLmAF8wj9Sawf30zikSp31KnUbdPkR+aDXOgPnWuJq TeTl4j+KkhKaIPAodafyVq3mubFmS7TVJoeF/u/7PECqFGe2EQfEBEVE1yhrpGEZlWWUtZbL Qkf/TAj6PV0/02wRd67VBq9yJKZgvICc8sTNc415Cy08aDF+121PzFeFjgeRvVz4afaWgcW/ lOOmtroAxlmv7uUVW+R+9+oQdWaZHV9wYgqOHJscOcV3zXwiNpq0kuXH76PBIbw34CkSW6pq 9yfhHJm390uYdg3O7JXFLwtqxixqJbASgldCu7/AT/1tVoRiGJIm+WVBbXz5PJEKsOSSUOM+ SVCkMmF5+dIBpaI/MBsfAnvNO/yjxpmGGSD6bKKI3XH32/8k5JEVdsBiAyS3G8zbq45lcbBO Sc/Qz956p5JJ2eNZqRqeY+3AMlC5fG+RIm0DK2ENYUWPcIZmOq7EMdGOxf4M4fFzhBErE3DE czznTuEVCxDUv03kFJauc9Ej+dxrszB+Y8jbcmrk0v4uVZvTHWUUrwCeECfdfw06bjsnekm2 4g3Cid+8D0GCLeWSnCOqeY7dAlWRVBlXsqeg5IMKYa+zv9ORTtJ5wn5m+1xIuSIXs19y4/1w 51Kch8AlASj2CacdW1nqBlLMdvSYHq2llpiVQQENlez0H9laoGqhJrzvbNoFVX73ISPFcJJc sQ= IronPort-HdrOrdr: A9a23:myA/26PukZqsN8BcT47255DYdb4zR+YMi2TDiHoBKiC9I/b5qy nxppUmPEfP+UcssREb9expOMG7MArhHO1OkPks1NaZLUbbUQ6TXeNfBOTZskDd8kHFh4lgPO JbAtZD4b7LfBZHZKTBkXWF+r8bqbHtntHM9IPjJjVWPH5Xgspbnn9E43OgYzdLrX59dOEE/f Snl6x6jgvlU046Ku68AX4IVfXCodrkqLLKCCRtOzcXrCO1oXeN8rDVLzi0ty1yb9pI+9gf2F mAtza8yrSosvm9xBOZ/XTU9Y5qlNzozcYGLNCQi+AOQw+cyjqAVcBEYfmvrTo1qOag5BIBi9 /XuSotOMx19jf4Yny1mx3wwAPtuQxeqEMKiGXow0cLk/aJAA7SOPAxwr6xtSGprXbIiesMlZ 6jGVjp7qa/QymwxBgVrOK4JC2C3nDE00bK19RjzkC2leAlGeVsRUt1xjIPLL4QWC3984wpC+ 9oEYXV4+tXa0qTazTDsnBo28HEZAV4Iv6qeDlLhiWu6UkcoFlpi08DgMAPlHYJ85wwD5FC+u TfK6xt0LVDVNUfY65xDPoIBZLfMB2AfTvcdGaJZVj3HqAOPHzA75bx/bUu/emvPJgF1oE7lp jNWE5R8WQyZ0XtA8uT24AjyGGBfEytGTD2js1O7ZlwvbPxALLtLC2YUVgr19Ctpv0Oa/erEs pb+KgmdcMLAVGebrqhhTeOLqW6AUNuJPEohg== X-Talos-CUID: 9a23:4vRwjWPTeDvtiu5DSWpB10EYN/keeGzFl1vpehXgDzlHYejA X-Talos-MUID: =?us-ascii?q?9a23=3AV/+xyw22ZvE2cQo2+9Kr2MezmTUj34CfVWYLlYQ?= =?us-ascii?q?/5sC1CBZ5IhrHjxmmTdpy?= X-IronPort-Anti-Spam-Filtered: true Received: from alln-core-5.cisco.com ([173.36.13.138]) by alln-iport-5.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2023 14:47:13 +0000 Received: from rcdn-opgw-1.cisco.com (rcdn-opgw-1.cisco.com [72.163.7.162]) by alln-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id 38TElDLK008320 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 29 Sep 2023 14:47:13 GMT X-CSE-ConnectionGUID: IT+jD4m+SsC7hMwRyy4zlw== X-CSE-MsgGUID: lwQzlutgSm2ybBLvD3ZDUg== Authentication-Results: rcdn-opgw-1.cisco.com; dkim=pass (signature verified) header.i=@cisco.com; spf=Pass smtp.mailfrom=davejo@cisco.com; dmarc=pass (p=quarantine dis=none) d=cisco.com X-IronPort-AV: E=Sophos;i="6.03,187,1694736000"; d="scan'208,217";a="3275659" Received: from mail-mw2nam10lp2108.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.108]) by rcdn-opgw-1.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2023 14:47:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jbr+1wbC9GuW8GTXpIH4NoRvF/RCaRwpoyAtXdOGoR5egNy14IejBXCtV7ZY/zNniDIE1oFD6VQH2VYxiNuoMAgjFqaEUb+g8uoo64jeSapsEPUVqAbVZ0pHXHrDZE0oGngpuxYKqXlGGjgnI9xt69rhaLPMi2Scnuwly21VyX2yxqPnWG/rFZb0YxjHNenN4jl1GV2rbdBBkSh4Bv4YBaHEyutsaFedFAAN5gwrao1nuNA+7oE6EpyG6yEzXitk5aYeyb2J9An2EdywGlt98RMDPnbQBrl9bTidgmvT2A8dLCDmTYW5yBxZhiLvMt7+ekOfLQoxqVdnVIyc6DHXmg== 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=Rc9Fhy+K6twegeJVSYGLAvyphntWuqVMl0pIFLiJOdU=; b=eKrXmLAkinfSwgEJ9IX/aO+m5CcqT8qvA4/u9Sfi25AYC7pZFZYrLMk6jair8mZ3ZMxcwa57WdUokX5WDakiMwC0biRm7wzV5YbAZz7ormq7VoBrT7q9u84rTruOgKiRuK+Q6isssltjvGdTUxQD9WK2KM1015R8IdlhrS5VOdS/K2fPMl4/WkEnTm5lAdAwFMWttZncazQvR+Th4HS4HRE5DOCrKOwzwjq6syVsIh2jeT8VGPc4zj8IcfdTAcRvn7FTH/Wt/SKH0nPdDCMGwFnYj2URQxnTOcc1ktwEmOHRaB4W61Eei+cdsGR1WovcX1jDPpgaoaS34Mh5QPPlxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rc9Fhy+K6twegeJVSYGLAvyphntWuqVMl0pIFLiJOdU=; b=besoUuzxzVPJvhiS+cJkBc8bI3Gyvor13g/2OnfbBi/eGSWY7zCCNBME5XoOZKZBZm39JWdaKFzVV0tktXENO/Q/lGISjS/G6tiqogDNETnvhBgcbFFS+e0CANVlBwVz+bcKpFcubCvmWWsqghIMvr7wGjFz/nb19B3yNEJ6LrE= Received: from MW4PR11MB6570.namprd11.prod.outlook.com (2603:10b6:303:1e3::6) by IA1PR11MB6073.namprd11.prod.outlook.com (2603:10b6:208:3d7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.19; Fri, 29 Sep 2023 14:47:10 +0000 Received: from MW4PR11MB6570.namprd11.prod.outlook.com ([fe80::86e9:dcbe:3e8a:702c]) by MW4PR11MB6570.namprd11.prod.outlook.com ([fe80::86e9:dcbe:3e8a:702c%6]) with mapi id 15.20.6838.024; Fri, 29 Sep 2023 14:47:10 +0000 From: "Dave Johnson (davejo)" To: Maxime Coquelin , "dev@dpdk.org" , "Roger Melton (rmelton)" , "Sampath Peechu (speechu)" , "chenbo.xia@outlook.com" , "Malcolm Bumgardner (mbumgard)" , "Chris Brezovec (cbrezove)" , "david.marchand@redhat.com" CC: Maxime Coquelin , "stable@dpdk.org" Subject: Re: [PATCH] net/virtio: fix descriptors buffer addresses on 32 bits builds Thread-Topic: [PATCH] net/virtio: fix descriptors buffer addresses on 32 bits builds Thread-Index: AQHZ68K1AlFe/2aiRUGa8JbYhm02jbAtIq0H Date: Fri, 29 Sep 2023 14:47:10 +0000 Message-ID: References: <20230920130147.1567735-1-maxime.coquelin@redhat.com> In-Reply-To: <20230920130147.1567735-1-maxime.coquelin@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR11MB6570:EE_|IA1PR11MB6073:EE_ x-ms-office365-filtering-correlation-id: 5fb9c67f-9e70-467c-889e-08dbc0faf5ef x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5TYwJAYJxdWfNq5sy2nofdRY1xi+CzwEpLvbIifdBVlMj0aFzfGpda8eMrRCkmyrwFfEstnG9lP0PYwmnQB7B1YOPfNW0Rq/LBfKPL2rVTO01x8FPGr+ZBkvCul9xZSRu+FigzxunQrnABHWJVr/yLiKK6e1jvAKCg12/vX2O6vZBl3f/u5BDTjIIp3sYS5+QlfY+nvRyfvQbiCO41uRlu2l0MpIJt3cxPnYmoA+wO3NsutWDO8fnpc2bNDawADzXj/3J4Sk0KIK4HF022jI6EIbtOBIaXjWTg8BI/C91GAxyIws6Z1LlPbyDn3UGyVLGDCEy2TMdpXwtYm1RihGO2wAoWLhFa/p6shOvF5+CNO2RTfOG/FOtygz+EIhxxhDHxe6nv9AK23xydGcbzZiieWUQzQFk8oonKdqiylDRIS3yAI5tQaGsRvm9BQPEstw0I6dcohD76DQq8kV/ufctFDV6bff6BepQYGPNrLxbAOPHbDLGFIBgpcw29BTSed8Al718u+Q7vXdOCHoYPt9n6n7hdBkaxFCQZO3JRj2AHY+QHbW7b0m5zj9lGegzUUfJ3PDA/nvJ4rU703gkaFNGOCklWc9gOm2ST0lfthNJEo0GpXm4ziyKb4yOLBDUSUg x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW4PR11MB6570.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(376002)(366004)(346002)(39860400002)(136003)(230922051799003)(64100799003)(186009)(1800799009)(451199024)(55016003)(76116006)(83380400001)(66946007)(316002)(478600001)(38100700002)(7696005)(54906003)(8676002)(38070700005)(66476007)(2906002)(110136005)(41300700001)(71200400001)(8936002)(9326002)(4326008)(9686003)(66446008)(122000001)(6506007)(52536014)(45080400002)(53546011)(66556008)(64756008)(33656002)(86362001)(5660300002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?DxWYu7rFMSoraJE3iVfTJGoOToL7gfGkha90n6zvr+fyVfq3xDbw/qZY?= =?Windows-1252?Q?x3TUx30Wm++MIWrgW6lz/tauaG0BArAomq6WKmHv+LEyJx1Gs0nEi2YL?= =?Windows-1252?Q?/myzm7XpxD7+rerpfQyRsje1C2PnLlgOHmL6A4qtvHyKA8mkau12JvtW?= =?Windows-1252?Q?bdFoUMwQLX+MHVYfOueSTaB0PJvM5jW8U/xf0WMLWEx+7r1Zd88DFFKD?= =?Windows-1252?Q?8COZJ3lz6df6qALIT2AdOXaGwgIpntXEF3QHOD1x1ypV5ub6YKhnMffH?= =?Windows-1252?Q?Axc7TvtgiohZvVKjB48pbPJz3LiUWcpF3gvIWIR8l0eIF8JzYwXw/OSV?= =?Windows-1252?Q?Sxm/YlN8pizZcyBU0a5rI/GCKb2zKMwmaEtDIBVb0SpyHdgokGph4Dvl?= =?Windows-1252?Q?YQB394E4rXCwUB1qVzdshP0q8cymvs1lsleBU164B6Ophsv5akrMqHBv?= =?Windows-1252?Q?CFfH/oy9xl8n1lO6LepEs6a+zGmm+e7M3/g/n4BbCxE3yP6DJk+uaHU7?= =?Windows-1252?Q?WrSQzdIBEftb3Fel4/zxUlLqx45Yb7hYIVrJpZy1/T8WSm5++fSvG1Oo?= =?Windows-1252?Q?2Bl+7XeWQz5lOOdxNpaxwPl1MaXtAdQXzAfijnIJtpcEO9YsL2q6m439?= =?Windows-1252?Q?XYdrtAPGT7NSeUVyqThi2L6iYd08fFcRN+gP+LXXcSxLFDKEHGQqka6W?= =?Windows-1252?Q?0aRN+G5h5t2Fw/GJRKVwIjBFJuFoTZuk56RMhWXfC4zfGNHen7XRbQS2?= =?Windows-1252?Q?NNY5u+jEOADn8QwwKnNePcJtHM6NeVRQVHBbJsM3tWEvuh1C7xClR2J1?= =?Windows-1252?Q?ex2587rtD5vHZkhYq3kaKZnyLaX6YrFHutTdAMAW2tnIX5gBZSSWJHzV?= =?Windows-1252?Q?oXwFZ80EuF4K5sjpc+ufS0BiTgVedWFdorXHM+s/GMRGqZKtiUyzE3zV?= =?Windows-1252?Q?cyuovG44kZLpLpPPO9nL84Mzc+0yrquFtWMn6Ujs+U0MMoJKlYNDSers?= =?Windows-1252?Q?lnpkmP4EIuzJWQYqaasXEjfAcX37nuUf/mbtNtPXq121gEtAOgHvl0aN?= =?Windows-1252?Q?DNgNOLplO3m83Qk/glQ8JmjTzMIxqvzRrC9mMmUAWwC0MBJ/T3ddgWSS?= =?Windows-1252?Q?m9llQxvHgdRixHPhZfSL+ekaiTz2LRtn5ShXmvKItTqT3RBkFsyBSnzp?= =?Windows-1252?Q?je99wX0+e/PgI6lTctv4DMGGSEP9ziL0ocsu9yTNWlslI29m4DC6GDPw?= =?Windows-1252?Q?bdOUyNMyi4pIcIiC31BYhm1TwKQg5aAOrc+OXIH13VZNpDdwu0fpWohJ?= =?Windows-1252?Q?+sfhLl/wjvaREAu5JO9/hP/gBDSrDKTpD9UkBCroPqAyf1cfh4QqwC0q?= =?Windows-1252?Q?nprt9GXPoBOKpTQk9jmieHOBa1HxC/k0gcfJKJyBAxQfTUDv71kVXgEp?= =?Windows-1252?Q?mavEdw/ogMhczbfnAzgfKb7DVBKFsXVKcMTx+uJM0vF5bf1rB3ImT4a/?= =?Windows-1252?Q?fYaYKyjENCuS1n47H3CgJwlqogpGs90wV367k7ShCgHoDUj8QupiYcxZ?= =?Windows-1252?Q?r3JECHy3A+J2IdL5m2fvX8T9YidZQ9OBV3V/56/Sy3Fox2NQ7T+JvDuX?= =?Windows-1252?Q?vGUPxmeZ9ya6YWOZ6O/k9L7QAmoDrHyj0rEcJoXdHmigTvBy2O8lQkdM?= =?Windows-1252?Q?tqPRXx3lzvRJKUoykz+pjVUKdD1dB/iIYV/F0iVVai2KE6VNwUoJqmsG?= =?Windows-1252?Q?a3xSKgq+Jdr5g12Y2y8=3D?= Content-Type: multipart/alternative; boundary="_000_MW4PR11MB6570207909C5320716EE1BFED3C3AMW4PR11MB6570namp_" MIME-Version: 1.0 X-OriginatorOrg: cisco.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB6570.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5fb9c67f-9e70-467c-889e-08dbc0faf5ef X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2023 14:47:10.2972 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rO26F1XDEF9Q4IQEA9uNjQYDj6TDS6u3jozXHeZP5APF3Cy6ETR49O/P59bizjDygjzHmhnj+xkNWuW/jdDd/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6073 X-Outbound-SMTP-Client: 72.163.7.162, rcdn-opgw-1.cisco.com X-Outbound-Node: alln-core-5.cisco.com X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org --_000_MW4PR11MB6570207909C5320716EE1BFED3C3AMW4PR11MB6570namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi Maxime, I back ported the patch to v22.11.2 and it worked for us on both the testpm= d app and with our 32-bit DPDK (virtio-pci) application. The change to set= the mbuf_addr_mask was moved under virtio_init_queue() in v22.11.2 (see be= low). I=92m in the process of updating the application to v23.07 and will test th= ere as well. Thank you for looking into this and providing the patch. Regards, Dave diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio= _ethdev.c index b72334455e..bd90ba9d49 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -565,10 +565,13 @@ virtio_init_queue(struct rte_eth_dev *dev, uint16_t q= ueue_idx) memset(mz->addr, 0, mz->len); - if (hw->use_va) + if (hw->use_va) { vq->vq_ring_mem =3D (uintptr_t)mz->addr; - else + vq->mbuf_addr_mask =3D UINTPTR_MAX; + } else { vq->vq_ring_mem =3D mz->iova; + vq->mbuf_addr_mask =3D UINT64_MAX; + } vq->vq_ring_virt_mem =3D mz->addr; PMD_INIT_LOG(DEBUG, "vq->vq_ring_mem: 0x%" PRIx64, vq->vq_ring_mem)= ; From: Maxime Coquelin Date: Wednesday, September 20, 2023 at 9:02 AM To: dev@dpdk.org , Roger Melton (rmelton) = , Dave Johnson (davejo) , Sampath Peechu (speechu) , chenbo.xia@outlook.com , Malcolm Bum= gardner (mbumgard) , Chris Brezovec (cbrezove) , david.marchand@redhat.com Cc: Maxime Coquelin , stable@dpdk.org Subject: [PATCH] net/virtio: fix descriptors buffer addresses on 32 bits bu= ilds With Virtio-user, the Virtio descriptor buffer address is the virtual address of the mbuf's buffer. On 32 bits builds, it is expected to be 32 bits. With Virtio-PCI, the Virtio descriptor buffer address is the physical address of the mbuf's buffer. On 32 bits builds running on 64 bits kernel, it is expected to be up to 64 bits. This patch introduces a new mask field in virtqueue's struct to filter our the upper 4 bytes of the address only when necessary. An optimization is introduced for 64 bits builds to remove the masking, as the address is always 64 bits wide. Fixes: ba55c94a7ebc ("net/virtio: revert forcing IOVA as VA mode for virtio= -user") Cc: stable@dpdk.org Reported-by: Sampath Peechu Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtqueue.c | 2 ++ drivers/net/virtio/virtqueue.h | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/net/virtio/virtqueue.c b/drivers/net/virtio/virtqueue.= c index 1d836f2530..6f419665f1 100644 --- a/drivers/net/virtio/virtqueue.c +++ b/drivers/net/virtio/virtqueue.c @@ -469,9 +469,11 @@ virtqueue_alloc(struct virtio_hw *hw, uint16_t index, = uint16_t num, int type, if (hw->use_va) { vq->vq_ring_mem =3D (uintptr_t)mz->addr; vq->mbuf_addr_offset =3D offsetof(struct rte_mbuf, buf_add= r); + vq->mbuf_addr_mask =3D UINTPTR_MAX; } else { vq->vq_ring_mem =3D mz->iova; vq->mbuf_addr_offset =3D offsetof(struct rte_mbuf, buf_iov= a); + vq->mbuf_addr_mask =3D UINT64_MAX; } PMD_INIT_LOG(DEBUG, "vq->vq_ring_mem: 0x%" PRIx64, vq->vq_ring_mem= ); diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.= h index 9d4aba11a3..c1cb941c43 100644 --- a/drivers/net/virtio/virtqueue.h +++ b/drivers/net/virtio/virtqueue.h @@ -114,17 +114,26 @@ virtqueue_store_flags_packed(struct vring_packed_desc= *dp, #define VIRTQUEUE_MAX_NAME_SZ 32 +#ifdef RTE_ARCH_32 +#define VIRTIO_MBUF_ADDR_MASK(vq) ((vq)->mbuf_addr_mask) +#else +#define VIRTIO_MBUF_ADDR_MASK(vq) UINT64_MAX +#endif + /** * Return the IOVA (or virtual address in case of virtio-user) of mbuf * data buffer. * * The address is firstly casted to the word size (sizeof(uintptr_t)) - * before casting it to uint64_t. This is to make it work with different - * combination of word size (64 bit and 32 bit) and virtio device - * (virtio-pci and virtio-user). + * before casting it to uint64_t. It is then masked with the expected + * address length (64 bits for virtio-pci, word size for virtio-user). + * + * This is to make it work with different combination of word size (64 + * bit and 32 bit) and virtio device (virtio-pci and virtio-user). */ #define VIRTIO_MBUF_ADDR(mb, vq) \ - ((uint64_t)(*(uintptr_t *)((uintptr_t)(mb) + (vq)->mbuf_addr_offset= ))) + ((*(uint64_t *)((uintptr_t)(mb) + (vq)->mbuf_addr_offset)) & \ + VIRTIO_MBUF_ADDR_MASK(vq)) /** * Return the physical address (or virtual address in case of @@ -194,6 +203,7 @@ struct virtqueue { void *vq_ring_virt_mem; /**< linear address of vring*/ unsigned int vq_ring_size; uint16_t mbuf_addr_offset; + uint64_t mbuf_addr_mask; union { struct virtnet_rx rxq; -- 2.41.0 --_000_MW4PR11MB6570207909C5320716EE1BFED3C3AMW4PR11MB6570namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable

Hi Maxime,

I back ported the p= atch to v22.11.2 and it worked for us on both the testpmd app and with our = 32-bit DPDK (virtio-pci) application.  The change to set the mbuf_addr= _mask was moved under virtio_init_queue() in v22.11.2 (see below).

 

I=92m in the proces= s of updating the application to v23.07 and will test there as well.  = Thank you for looking into this and providing the patch.<= /p>

Regards, Dave<= /o:p>

 

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virti= o/virtio_ethdev.c

index b72334455e..bd90ba9d49 100644

--- a/drivers/net/virtio/virtio_ethdev.c

+++ b/drivers/net/virtio/virtio_ethdev.c

@@ -565,10 +565,13 @@ virtio_init_queue(struct rte_eth_dev *dev, ui= nt16_t queue_idx)

        memset(mz->addr,= 0, mz->len);

-       if (hw->use_va)=

+       if (hw->use_va) {

           &= nbsp;    vq->vq_ring_mem =3D (uintptr_t)mz->addr;=

-       else

+           =     vq->mbuf_addr_mask =3D UINTPTR_MAX;=

+       } else {

           &= nbsp;    vq->vq_ring_mem =3D mz->iova;

+           =     vq->mbuf_addr_mask =3D UINT64_MAX;<= /p>

+       }

        vq->vq_ring_virt= _mem =3D mz->addr;

        PMD_INIT_LOG(DEBUG, &quo= t;vq->vq_ring_mem: 0x%" PRIx64, vq->vq_ring_mem);

 

From: Maxime Coquelin <= ;maxime.coquelin@redhat.com>
Date: Wednesday, September 20, 2023 at 9:02 AM
To: dev@dpdk.org <dev@dpdk.org>, Roger Melton (rmelton) <rm= elton@cisco.com>, Dave Johnson (davejo) <davejo@cisco.com>, Sampat= h Peechu (speechu) <speechu@cisco.com>, chenbo.xia@outlook.com <ch= enbo.xia@outlook.com>, Malcolm Bumgardner (mbumgard) <mbumgard@cisco.= com>, Chris Brezovec (cbrezove) <cbrezove@cisco.com>, david.marchand@redha= t.com <david.marchand@redhat.com>
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>, stable@dpdk.= org <stable@dpdk.org>
Subject: [PATCH] net/virtio: fix descriptors buffer addresses on 32 = bits builds

With Virtio-user, the Virtio descriptor buffer address is the virtual address of the mbuf's buffer. On 32 bits builds, it is
expected to be 32 bits.

With Virtio-PCI, the Virtio descriptor buffer address is the
physical address of the mbuf's buffer. On 32 bits builds running
on 64 bits kernel, it is expected to be up to 64 bits.

This patch introduces a new mask field in virtqueue's struct to
filter our the upper 4 bytes of the address only when necessary.
An optimization is introduced for 64 bits builds to remove the
masking, as the address is always 64 bits wide.

Fixes: ba55c94a7ebc ("net/virtio: revert forcing IOVA as VA mode for v= irtio-user")
Cc: stable@dpdk.org

Reported-by: Sampath Peechu <speechu@cisco.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtqueue.c |  2 ++
 drivers/net/virtio/virtqueue.h | 18 ++++++++++++++----
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/net/virtio/virtqueue.c b/drivers/net/virtio/virtqueue.= c
index 1d836f2530..6f419665f1 100644
--- a/drivers/net/virtio/virtqueue.c
+++ b/drivers/net/virtio/virtqueue.c
@@ -469,9 +469,11 @@ virtqueue_alloc(struct virtio_hw *hw, uint16_t index, = uint16_t num, int type,
         if (hw->use_va) {
            &nb= sp;    vq->vq_ring_mem =3D (uintptr_t)mz->addr;
            &nb= sp;    vq->mbuf_addr_offset =3D offsetof(struct rte_mbuf,= buf_addr);
+            &n= bsp;  vq->mbuf_addr_mask =3D UINTPTR_MAX;
         } else {
            &nb= sp;    vq->vq_ring_mem =3D mz->iova;
            &nb= sp;    vq->mbuf_addr_offset =3D offsetof(struct rte_mbuf,= buf_iova);
+            &n= bsp;  vq->mbuf_addr_mask =3D UINT64_MAX;
         }
 
         PMD_INIT_LOG(DEBUG, "= vq->vq_ring_mem: 0x%" PRIx64, vq->vq_ring_mem);
diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.= h
index 9d4aba11a3..c1cb941c43 100644
--- a/drivers/net/virtio/virtqueue.h
+++ b/drivers/net/virtio/virtqueue.h
@@ -114,17 +114,26 @@ virtqueue_store_flags_packed(struct vring_packed_desc= *dp,
 
 #define VIRTQUEUE_MAX_NAME_SZ 32
 
+#ifdef RTE_ARCH_32
+#define VIRTIO_MBUF_ADDR_MASK(vq) ((vq)->mbuf_addr_mask)
+#else
+#define VIRTIO_MBUF_ADDR_MASK(vq) UINT64_MAX
+#endif
+
 /**
  * Return the IOVA (or virtual address in case of virtio-user) of mbu= f
  * data buffer.
  *
  * The address is firstly casted to the word size (sizeof(uintptr_t))=
- * before casting it to uint64_t. This is to make it work with different - * combination of word size (64 bit and 32 bit) and virtio device
- * (virtio-pci and virtio-user).
+ * before casting it to uint64_t. It is then masked with the expected
+ * address length (64 bits for virtio-pci, word size for virtio-user).
+ *
+ * This is to make it work with different combination of word size (64
+ * bit and 32 bit) and virtio device (virtio-pci and virtio-user).
  */
 #define VIRTIO_MBUF_ADDR(mb, vq) \
-       ((uint64_t)(*(uintptr_t *)((uintptr_t= )(mb) + (vq)->mbuf_addr_offset)))
+       ((*(uint64_t *)((uintptr_t)(mb) + (vq= )->mbuf_addr_offset)) & \
+            &n= bsp;  VIRTIO_MBUF_ADDR_MASK(vq))
 
 /**
  * Return the physical address (or virtual address in case of
@@ -194,6 +203,7 @@ struct virtqueue {
         void *vq_ring_virt_mem;&nb= sp; /**< linear address of vring*/
         unsigned int vq_ring_size;=
         uint16_t mbuf_addr_offset;=
+       uint64_t mbuf_addr_mask;
 
         union {
            &nb= sp;    struct virtnet_rx rxq;
--
2.41.0

--_000_MW4PR11MB6570207909C5320716EE1BFED3C3AMW4PR11MB6570namp_--