Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp5583129img; Wed, 27 Mar 2019 11:08:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqxVZrjgYmhQQ7EPrzkk1UGGm6a9ZSEoIq/uoH2i08DkvfcG5FjNNk9pdiHLJ7vpU1m46ou4 X-Received: by 2002:a17:902:4381:: with SMTP id j1mr5519595pld.75.1553710082185; Wed, 27 Mar 2019 11:08:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553710082; cv=none; d=google.com; s=arc-20160816; b=Rl4p0sAFXApYx4mpWPgMfchcUkSwaQx2Ohw2LAF4Qrm1SoaWR+KuKBt9PHGGHH/yOl xjej6NWMJemLfJxiVvpDX5yPL1Yc/6LaBnGrhkJxINKjB6Crb7HcyKrFD5DkaNCH1RHv kS9rDlmp3Zf1e/eCO7IqhNfPyTvdVh12AGjWh8rdtTmRqOPuJhDkLoWRynoi75rZMgBX c0kKaknKN4TDGh/3gMZ8TF0vV8jLk8A6FMI5GY262zOYYaJdi0hgLoMIdzMU/bfWAEEQ PN+u5KVkhSB7pUEx37Iy+22E9lqu9nkVeTXwItycZeTV0sNMkAxp0ZyZ17dpdmekuvOl 16CQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PpOPAeqWpzW+96UsGxzJp1YLVMSLADHI6l+REdAg+/g=; b=FOgMe9Ypg9Y60oDQTyk+GqCQ5Y2H40QJ+FgBQka10xhcDxVicPU4EDNzPZCSCTb0kX ZagiKGINDaHiEJlnuSm9JiAxL7w9q1yJURlFa4lp/X5wU1OYDxGgvDikPdisIAGmUsWP uPhK6UOu0t8Rw74K1ZnQBVI1R3PF3gCaFPjMa6K7U6eJrx+GJR4PZOU8t+icSCGEM7jS i04Jh+Cs7CZMxFKiQrraTnXUnBsnqZk0yJub2SKU8+JldHcOEv83siHFzgY7ghCBdNZu n7npT7Rekrhzs8STiPYRYQVDhtoXdivhNgOU7RRsKSuKvScQI2EsUJfTu8ot1jz4OF/K MYwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=UDE3V18s; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 101si20432187pld.334.2019.03.27.11.07.46; Wed, 27 Mar 2019 11:08:02 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=UDE3V18s; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387600AbfC0SFK (ORCPT + 99 others); Wed, 27 Mar 2019 14:05:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:46096 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387583AbfC0SFH (ORCPT ); Wed, 27 Mar 2019 14:05:07 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4935C217F9; Wed, 27 Mar 2019 18:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553709906; bh=S4n0aZimLdD4R+tsUCTIIZdShqHluTM1NeplZyOBN9g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UDE3V18stRNuYojBG28gUikLhNetOUbMMEYSQgPlADx9adS4PLkMwE1mjhHn2MpjN xeV8GAl2NAhRzGaypqoQxGHaORF7+XHvFLouO9n4ESzZkQLaloArUE/AXh/YBd7lvI dLvXR2WGahVAfzeT1teS/7CIj57n3EJq1IvuWLxs= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?H=C3=A5kon=20Bugge?= , Jason Gunthorpe , Sasha Levin , linux-rdma@vger.kernel.org Subject: [PATCH AUTOSEL 5.0 103/262] IB/mlx4: Increase the timeout for CM cache Date: Wed, 27 Mar 2019 13:59:18 -0400 Message-Id: <20190327180158.10245-103-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190327180158.10245-1-sashal@kernel.org> References: <20190327180158.10245-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Håkon Bugge [ Upstream commit 2612d723aadcf8281f9bf8305657129bd9f3cd57 ] Using CX-3 virtual functions, either from a bare-metal machine or pass-through from a VM, MAD packets are proxied through the PF driver. Since the VF drivers have separate name spaces for MAD Transaction Ids (TIDs), the PF driver has to re-map the TIDs and keep the book keeping in a cache. Following the RDMA Connection Manager (CM) protocol, it is clear when an entry has to evicted form the cache. But life is not perfect, remote peers may die or be rebooted. Hence, it's a timeout to wipe out a cache entry, when the PF driver assumes the remote peer has gone. During workloads where a high number of QPs are destroyed concurrently, excessive amount of CM DREQ retries has been observed The problem can be demonstrated in a bare-metal environment, where two nodes have instantiated 8 VFs each. This using dual ported HCAs, so we have 16 vPorts per physical server. 64 processes are associated with each vPort and creates and destroys one QP for each of the remote 64 processes. That is, 1024 QPs per vPort, all in all 16K QPs. The QPs are created/destroyed using the CM. When tearing down these 16K QPs, excessive CM DREQ retries (and duplicates) are observed. With some cat/paste/awk wizardry on the infiniband_cm sysfs, we observe as sum of the 16 vPorts on one of the nodes: cm_rx_duplicates: dreq 2102 cm_rx_msgs: drep 1989 dreq 6195 rep 3968 req 4224 rtu 4224 cm_tx_msgs: drep 4093 dreq 27568 rep 4224 req 3968 rtu 3968 cm_tx_retries: dreq 23469 Note that the active/passive side is equally distributed between the two nodes. Enabling pr_debug in cm.c gives tons of: [171778.814239] mlx4_ib_multiplex_cm_handler: id{slave: 1,sl_cm_id: 0xd393089f} is NULL! By increasing the CM_CLEANUP_CACHE_TIMEOUT from 5 to 30 seconds, the tear-down phase of the application is reduced from approximately 90 to 50 seconds. Retries/duplicates are also significantly reduced: cm_rx_duplicates: dreq 2460 [] cm_tx_retries: dreq 3010 req 47 Increasing the timeout further didn't help, as these duplicates and retries stems from a too short CMA timeout, which was 20 (~4 seconds) on the systems. By increasing the CMA timeout to 22 (~17 seconds), the numbers fell down to about 10 for both of them. Adjustment of the CMA timeout is not part of this commit. Signed-off-by: Håkon Bugge Acked-by: Jack Morgenstein Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/hw/mlx4/cm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/mlx4/cm.c b/drivers/infiniband/hw/mlx4/cm.c index fedaf8260105..8c79a480f2b7 100644 --- a/drivers/infiniband/hw/mlx4/cm.c +++ b/drivers/infiniband/hw/mlx4/cm.c @@ -39,7 +39,7 @@ #include "mlx4_ib.h" -#define CM_CLEANUP_CACHE_TIMEOUT (5 * HZ) +#define CM_CLEANUP_CACHE_TIMEOUT (30 * HZ) struct id_map_entry { struct rb_node node; -- 2.19.1