Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp264804img; Mon, 18 Mar 2019 02:36:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqzjnqM9tHJsrCxhqkiJswymAuIBTLrj6PDAMNezIArZj2wZsVqrU9x6uHfkOuzCKSpJZf9X X-Received: by 2002:a17:902:6b81:: with SMTP id p1mr19146152plk.106.1552901771720; Mon, 18 Mar 2019 02:36:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552901771; cv=none; d=google.com; s=arc-20160816; b=VioZSy4SYmk6EaA7mmdD3AY0Ct2pJgw+46FS1PMMdIWU4CJBnRKLBdLGj3anr1Jke0 iOYjJhL/nxyTjyCi1dAW+BrLNQDYcIKwbtAzgGW55B7Aaq2lqVJB5PqBeBCwcBdxkKMg scj9EH5yXu0b3Lq/ZhZcuEmj6J0WqLjAVLcK8Ea2/yRZMe8ihwWB2kR5cA75PnlH/IaJ lQPw08tDEocpcbRinN9rggICX5T4HJSsBL50GS62tgA365cEz3VOmoDDoI/49sS9XhFP GB80p8YEeFleL2M/kt4Ijf9se6O+POxO+XDYRyUxyPOqfPQKRbjPbOQsXPnUwhfNJRJQ qwVw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=RGuDK3L/SpnRd9E/G/eJjwObGXq6RxUqhrRZdwWiSRE=; b=Lr0Xl8264knuYG2K+R+cklPYI0iMPHwmJm3Kq1TmwaDr9zQFxI1aFFL27LKCNmBKBK 9D3s1h/pdPmpaVAC1NUHvFwDfnHwGxQtmZ3OUfxKR8RoxNBMjon35yOMIWtjQZgBw65A sc8kK7kQ42L0AND9e6IWREB/pDS/bRWDvqN3GXlUeyzSaSXzyXRQSu90+tfTwYvPsu87 RLviHIwxVn7iZgDv5F8jEvtDM8x85OuOrzjaTY8XIeYVOlaAddnlkGekvxfA9my2Xnga NNn4Chzn1hHqDpOEktzEc/kyVcrJG6aHWfacFtmtQ4K7s8GjQaD9MAR6BcWZI0BaM9Od kV+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rjCSpwDE; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f18si8271602pgv.253.2019.03.18.02.35.56; Mon, 18 Mar 2019 02:36:11 -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=rjCSpwDE; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729027AbfCRJef (ORCPT + 99 others); Mon, 18 Mar 2019 05:34:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:42974 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728720AbfCRJed (ORCPT ); Mon, 18 Mar 2019 05:34:33 -0400 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4A1332083D; Mon, 18 Mar 2019 09:34:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552901672; bh=vZziSGpGjuq7EcDtYDJvNMZrSXCU9weoJlzObpLLZb8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rjCSpwDE8KTc6Bl9xte4iK675Hi7sJY8NULV4QlOkfXQ64wmiXu1kwYyfBuTV8SQS 8YJo0kAzn6PUVzpBTypM6dzupcnHpZjzCurTSy2nGbMLIEzydqtkTje+E1o2i2PP1L 8+xk0YpXOFrPl9tSZVUHoYHJ5rp84nxMNiTNNHtM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Howells , Marc Dionne , "David S. Miller" Subject: [PATCH 4.14 14/34] rxrpc: Fix client call queueing, waiting for channel Date: Mon, 18 Mar 2019 10:25:38 +0100 Message-Id: <20190318084146.644842685@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190318084144.657740413@linuxfoundation.org> References: <20190318084144.657740413@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: David Howells [ Upstream commit 69ffaebb90369ce08657b5aea4896777b9d6e8fc ] rxrpc_get_client_conn() adds a new call to the front of the waiting_calls queue if the connection it's going to use already exists. This is bad as it allows calls to get starved out. Fix this by adding to the tail instead. Also change the other enqueue point in the same function to put it on the front (ie. when we have a new connection). This makes the point that in the case of a new connection the new call goes at the front (though it doesn't actually matter since the queue should be unoccupied). Fixes: 45025bceef17 ("rxrpc: Improve management and caching of client connection objects") Signed-off-by: David Howells Reviewed-by: Marc Dionne Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/rxrpc/conn_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/net/rxrpc/conn_client.c +++ b/net/rxrpc/conn_client.c @@ -351,7 +351,7 @@ static int rxrpc_get_client_conn(struct * normally have to take channel_lock but we do this before anyone else * can see the connection. */ - list_add_tail(&call->chan_wait_link, &candidate->waiting_calls); + list_add(&call->chan_wait_link, &candidate->waiting_calls); if (cp->exclusive) { call->conn = candidate; @@ -430,7 +430,7 @@ found_extant_conn: call->conn = conn; call->security_ix = conn->security_ix; call->service_id = conn->service_id; - list_add(&call->chan_wait_link, &conn->waiting_calls); + list_add_tail(&call->chan_wait_link, &conn->waiting_calls); spin_unlock(&conn->channel_lock); _leave(" = 0 [extant %d]", conn->debug_id); return 0;