From patchwork Mon Mar 20 23:38:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 22030 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 67D532BF2; Tue, 21 Mar 2017 00:38:18 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30080.outbound.protection.outlook.com [40.107.3.80]) by dpdk.org (Postfix) with ESMTP id 30605133F; Tue, 21 Mar 2017 00:38:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=vZNs03Mq7LadAw/ofxHvzINyCLnuGUl+Qs2k3Hro5Rg=; b=rOaKVnlnG0b9jC4UCibVItQaNnb84RnJYIFIF9hF1jnoM9ybPgfd/jjOFhkWU8/zexvcQW5Z00YIyTRYq7O+hy7X/YegT3oymcFcxlXmX9RIOvzemWAylAQ9SSfHb5Qfoqyaq8RWhfU5J580LhLjC8+6oeCzWvYCj79cpH54YvU= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none; intel.com; dmarc=none action=none header.from=mellanox.com; Received: from mellanox.com (12.250.235.110) by AM5PR0501MB2449.eurprd05.prod.outlook.com (10.169.149.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Mon, 20 Mar 2017 23:38:14 +0000 From: Yongseok Koh To: CC: , , , Yongseok Koh , Date: Mon, 20 Mar 2017 16:38:04 -0700 Message-ID: <20170320233804.47489-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 X-Originating-IP: [12.250.235.110] X-ClientProxiedBy: BN6PR11CA0017.namprd11.prod.outlook.com (10.172.17.27) To AM5PR0501MB2449.eurprd05.prod.outlook.com (10.169.149.151) X-MS-Office365-Filtering-Correlation-Id: afbf798e-176d-47d2-3499-08d46fea2e88 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:AM5PR0501MB2449; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2449; 3:zFJHM/MnUBIRSLQZ4uHlAE/Bquyp8YcAemhvXbE3KgvkfhQXS5D6g8TnoiV35XRHhre/9IKcE6fJJTfDqFGVyYeZxz1Ifc14nDCzenYLJZ1M9JFqKNLl32F7oO6KZlU1z/NR04CIeKaHfsnIy8Kj8mi+Ne+H6TJcticamLnJsH/IwTvp01TXcpcmX6dCMRbXKfdDexLFNuPFj6JVko0dWoH+A286WD/dq7Ztbt3jrdpqoUInTQFVkAxKnfJFA2VCJzkIPcB293irefuquV7nWnmmkFzXDS5C8SKYjpLcx+s=; 25:s8icW7SKmdEjTtDGISYzHcxy3IudDBd6OFJ9w3okl3NsDOFfJx/K6Z4YJ+BnhnaQLcDcGKB3taWDavYB0XON83sK4ewuCnhxNaRisj+sMyUCOAnK5NRoccJRVy829EkEIaneab+47xdeaRNu7WK3HunS3+Crm+xq0fVuSvJBd1sXRSAhQPbE6+vf6NN3CQnwgr0I8a3k/6o9shmb1Qnh6Ht5c4R3AHsc7qH+pd1GDfEaXh9JVHrwz5Ne23lW4pEkHPwUsGtV0+rn4roztbZSTzw0iyvtVy2XRUa6mIb0viupS6Xo52NB68Og+X7D/k3d9w4WAhK0aVmsTXbVdcZDdAPV33vEOsdbk+fThvxmJLs+R1z74DSOf8k+jxxbVyT2EJqsB1CDoTr62v8wqNRL9tScsNJ3eA09XBJqRgP7fCKjDk1YeAc2DkahC88lhUr5TzcL2fYjfHmFzf1/aAjDyQ== X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2449; 31:E/P6RYEup7DzUMKiDLPri3cZT/bMk4euenCdDw4eCxNtIA/w3rryn+LJchY4QwO+s+3ZdP6rlw88UcctAhim+oTdZGqH+Jg+wyEXui+P7t/oIw43RuMvnBtse1yVNq+tOWMq7jq6HupOA1Eo0Pd4nHNnjFJDhJghdfS33FfVFts92amvRHtDpYiXZ9hj4DfzbukskLq8sHxmNSGs5p5E6KGt1V09sp9QGy66Kpv8C9uaocJvuMTD9QVRmcCr0cQh+96UMFbR/Tom8Y96Xzn0Yg==; 20:tJTyktUdilKY8fswcPcMZKKij9IY4gCaTDCYCZJujIkmKcUFB1OB15UWSjhqH4UHdaDDSEEzN127CUeCcHVCpehVac6cshRdE7ZH8W7ic3dxy3YIKmKuvgMgihiVzbdEQmwXpOS7kU4WgfvwPqzKgVQ5oL0M0B95kRedsaPaICn5HNl4plzJCcAN+Y5ULd/sFvf9KNc0P9vhDrQRUn8u1vKCg8wHQRjC951VoRYDDyCf7wT8XkQ1e4FoOowACdyAD9P3TeJaPerWtMw+C3nooTYUaPEtxS4RyQUkAhk8LWe1MY4VJa4MBUjj8nYFzzehL7xOcutLcAkhhg66FUPXNM16bVT4gz9vvp3sMNEJ/PfgFVdyBLHksznDsueRtaBRaJYzplbZDCUj3jw2pdRLSjsNwCADDa4ihQ94SmdFm/7LlLNGUBgmVLhB1HfHqE8hoIrukE7y7xBw7v/h4vQ0MOZI8UKdqRNAcZ3Vq8RqkuBIzQCAlrSX6ekrlsZ6geCH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123560025)(20161123555025)(20161123558025)(20161123564025)(6072148); SRVR:AM5PR0501MB2449; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0501MB2449; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2449; 4:SzKqRFAeYxTUx5g2s0oxOgA6FXQhawSeX20O2MUJuhigyUCUO2oJfan2VFf4tAxyHd9EJUcBt4nzvn4OseK/NU00q2KZ3F+ck1IkbFGM5qyXWc/LEf931Vc5yT4PRL9FeaoaEwcaKtIz0SszVQqYhXxGfmNtJ55JhmbbJdxykZBI3xaewdPFmhrEWfvmTuj9B45g8jzdtS6Ti2xiZ963Bqw7ih83zPOqBqkf9MwDx+wDhxWPy36DAE0Rw7HnRq8VWB0reJ6tGP9c9ORZY50pR+Pzs9g75hSY7Iz/NLxet0rsST+oHhGBXRUv9SLET/7sGqD9bSVxBTUqSFh/qxp7fZa5cqVDywzRg20I4bMuhVhGZsDy6U0d84sqflt+wR6g8tSqC07dmb80EVN+DGUwQLs2TJKksCXRJC2NcxBTS/swcGe97PJyTcBLC1bZwVbdj8pJOYOh9rrUkLDYtJnyZcLEATFBvV1eb343Z1fdluZil4RSMPt4q9YFrcTGFmDZm9sBnW41AtfVeAkUbmJ0ujLvwnK299BwNPGjCmFjEhhpbALLQI2kLN+p8zGC+ZscmAAjBBIT9mOyXMpfmR0h53hBP3wuivRnjPffWXoHdoblaopXthemyIXkSTTfhOI6 X-Forefront-PRVS: 02524402D6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39410400002)(39860400002)(39450400003)(36756003)(50226002)(50466002)(48376002)(55016002)(4326008)(86362001)(6666003)(6916009)(7736002)(575784001)(1076002)(5003940100001)(81166006)(8676002)(5660300001)(2906002)(305945005)(6116002)(33026002)(66066001)(50986999)(3846002)(110136004)(53936002)(189998001)(42186005)(33646002)(54906002)(47776003)(38730400002)(2351001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2449; H:mellanox.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0501MB2449; 23:Z3rG4Yd4Sznej39i7alqMnei07iSRxzFrXzdJ7N?= xHQhEl9PWGttc33h+LRzx5haOMXUPwGXyxyo+WgubqdwzU/Cf73to8srJfFlPXuGXdFOvsrKJov+xRT6RLlvTx9qxdyC/DFULKJfFTpdXgE125c4gTzu1XjRkkLRRT6Y4oWiaUWnpT/WA9U84YUK/I31m/cSQklj2qsUF6EyE16owz2H05TiGrAf6NDej+mjBWHjqymRoZV/my2l0ax5Ku0kXC64FcVRpIjTInMbgQc9BnrYO2HYPImMDpYS3C5ms1nJTuhf98AIOvlH8ANIiABaOc2KCBpYBrOZktovrBzuIEgfUT8o5iEeWCRE7R1P6KPJ8MoFwapCGe7ulZCh9AElPQmoTCEy2romAqv2brISyYhohQxKjV94/zLjW5naJKVNzYISp2SCc5ZYRAtEiY8PHGbzKIiFIKOxaWL993r5hqXbMyeLTAGJG2aglIA5KfMUEen/BPM2pYJDZjmcw2vxBnJDbjeZrX+1Bb0Yoh3fg2HKZHROrIErJ4BEi2ZiSzGVi7eqq1RGjD/k3xxXj5eHPRBR6V9LX+dccnT/wPQiMxT+4twJoD5SjRZ4IStoyP9JVpWEuVHoYquLfH0C6fwAByv8tx3wmJus43KqzHwMgaZ5mVco+ncK1HyVMsvbJx0mtX5iwN8VRoRqmxNeJzroMzVblIbIuaMwpO3+VQHfAjV0T/LwTdhNlKl/1mqBEDLQJDJAFnJBc/x4oYJxCm7SH70082dpuUBf1sbaq7LwQiqCMwYCuV54qDmoJFGidyxELXomMDkM6ucNvLM0gfaXGE+jZcF16goFOcBHqAktg3jqhiEASwDZTSnaQzZs/Y5UurApOePVC5JD/F/G8DKGRT8qEaXjcSCuZxKIY/XYTDYL7TIPPBgd4L0UJJPhIyYbPVCRoTkPm6TgHEx1LfRPFTnIuw5Bicx6sVd9x2U6IN0xq1WESkBMsFhp1KK4TfqgdijuwhE9u2Pmmd1+HiIo0 X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2449; 6:PNJ+w8EUzgz8+zKJQ0CSIYo6ihH9gcc3tk4rLo+vpvA6NUQHUvCX18toiAUeOmoUeqlnKRYH9XiiUmWDJ38Sjd4kcdbQAqQSNFuasEdAivJR8VkUedAkQY7CZK8E9/cI3w7EbMe5/QZ5twX/y0gTGXtWiSTUXJ6CXNEuLDWywVZM3i1r4jmwU6mfmi11+xUtHG5WRIiVXBtut2QIuL9Q3+SB47NBTzpz8a70p/r5NGBZthZdyXKR6xYWhvPJRWXlc+uDpNFlT+l2ih3rueX0wifg8Auott4zXyjN4iu4k07d7vIp0A80HkmD6qrnnKgle1s6GnlWHufhu+T8uz2zXR10qsGIM/911rG0zmkzpuZU9Hpe2JKm18YbMNUizfJBS4CTI/tEZwev45E+kqTzyuX5MUtWnIkQjeJ3/rv732I=; 5:SmA764JZwQ7KE6k8b6+i30CpvxbsrkVUyl+fAnfLe82bRY3i5cgWXkX7Ts3Tk90gkQ03KmyezG0O9GQvWfwJe+ZUtzsa4iACAN2ih6sWr6vggWWIxS3ImOv7BFc8xLJcrSJZZgtlReGWBE8DxnHS6A==; 24:wQfEo0OcFrTS0fS32CVO02TVQz4gVNnTxgz/u5S3fYhIE2l/8Zf/5N4OgRvgmSXSplLaVMIa+66cSo5egC+qxPYT4DHNXyibgxT3V+cz0hs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2449; 7:NVjGl60t7dICp6jxSD5AAVs9GjxVxGcsD+Q+gOYi0SbYLHwFjQCBhb4cM4FeaIoiIldxU6HIFMjuPglGcgHu10FU8WZb3al46rx0XOPJ8OntiCXOFyoZMFG7ihJkY1VZFYZxmRkDuDN/Y5+3yQtSD+s0JmVTKbjLOyCNkgFV2HP4Uz/EBN0kKIRY+DB+T8VQCTobWW3cGReQQs/2qB59c+62hYtvK85Hc2Qm4SQtgswTT6hmQ+5LwwjsSUczhZNC/l2xxbbEaYwRAMj0Q7Vsb/fU0xMZWR+JWAzueovAEk3W2Yk2APJWoqv8SFh44ZJKXe9lbDCA6LQcrw1ZKXd8aQ== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2017 23:38:14.6980 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2449 Subject: [dpdk-dev] [PATCH] net/mlx5: fix reusing Rx/Tx queues 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When configuring Rx/Tx queue, if queue already exists, it is reused. But if the queue size is changed, it must be resized to not access/overwrite invalid memory. Fixes: 2e22920b85d9 ("mlx5: support non-scattered Tx and Rx") CC: stable@dpdk.org Signed-off-by: Yongseok Koh --- drivers/net/mlx5/mlx5_rxq.c | 13 +++++++++++++ drivers/net/mlx5/mlx5_txq.c | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index e6070a0e5..aa28efc3d 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -1261,6 +1261,19 @@ mlx5_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, } (*priv->rxqs)[idx] = NULL; rxq_cleanup(rxq_ctrl); + /* Resize if rxq size is chagned. */ + if (rxq_ctrl->rxq.elts_n != log2above(desc)) { + rxq_ctrl = rte_realloc(rxq_ctrl, + sizeof(*rxq_ctrl) + + desc * sizeof(struct rte_mbuf *), + RTE_CACHE_LINE_SIZE); + if (!rxq_ctrl) { + ERROR("%p: unable to reallocate queue index %u", + (void *)dev, idx); + priv_unlock(priv); + return -ENOMEM; + } + } } else { rxq_ctrl = rte_calloc_socket("RXQ", 1, sizeof(*rxq_ctrl) + desc * sizeof(struct rte_mbuf *), diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index bbfce756b..371dcd2f6 100644 --- a/drivers/net/mlx5/mlx5_txq.c +++ b/drivers/net/mlx5/mlx5_txq.c @@ -532,6 +532,19 @@ mlx5_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, } (*priv->txqs)[idx] = NULL; txq_cleanup(txq_ctrl); + /* Resize if txq size is chagned. */ + if (txq_ctrl->txq.elts_n != log2above(desc)) { + txq_ctrl = rte_realloc(txq_ctrl, + sizeof(*txq_ctrl) + + desc * sizeof(struct rte_mbuf *), + RTE_CACHE_LINE_SIZE); + if (!txq_ctrl) { + ERROR("%p: unable to reallocate queue index %u", + (void *)dev, idx); + priv_unlock(priv); + return -ENOMEM; + } + } } else { txq_ctrl = rte_calloc_socket("TXQ", 1,