From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761571AbXJDJd7 (ORCPT ); Thu, 4 Oct 2007 05:33:59 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759667AbXJDJSl (ORCPT ); Thu, 4 Oct 2007 05:18:41 -0400 Received: from mx1.redhat.com ([66.187.233.31]:58820 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759616AbXJDJSc (ORCPT ); Thu, 4 Oct 2007 05:18:32 -0400 From: swhiteho@redhat.com To: linux-kernel@vger.kernel.org, cluster-devel@redhat.com Cc: Patrick Caulfield , Steven Whitehouse Subject: [PATCH 43/51] [DLM] Make dlm_sendd cond_resched more Date: Thu, 4 Oct 2007 09:49:36 +0100 Message-Id: <11914878683674-git-send-email-swhiteho@redhat.com> X-Mailer: git-send-email 1.5.1.2 In-Reply-To: <11914878661743-git-send-email-swhiteho@redhat.com> References: <11914877842142-git-send-email-swhiteho@redhat.com> <11914877912880-git-send-email-swhiteho@redhat.com> <11914877934041-git-send-email-swhiteho@redhat.com> <11914877952291-git-send-email-swhiteho@redhat.com> <11914877971413-git-send-email-swhiteho@redhat.com> <11914877993073-git-send-email-swhiteho@redhat.com> <11914878002186-git-send-email-swhiteho@redhat.com> <1191487802255-git-send-email-swhiteho@redhat.com> <11914878043598-git-send-email-swhiteho@redhat.com> <11914878063121-git-send-email-swhiteho@redhat.com> <11914878081562-git-send-email-swhiteho@redhat.com> <11914878102813-git-send-email-swhiteho@redhat.com> <1191487812928-git-send-email-swhiteho@redhat.com> <11914878141625-git-send-email-swhiteho@redhat.com> <1191487815172-git-send-email-swhiteho@redhat.com> <11914878173677-git-send-email-swhiteho@redhat.com> <11914878191964-git-send-email-swhiteho@redhat.com> <11914878214113-git-send-email-swhiteho@redhat.com> <11914878231394-git-send-email-swhiteho@redhat.com> <11914878252873-git-send-email-swhiteho@redhat.com> <11914878271468-git-send-email-swhiteho@redhat.com> <11914878283252-git-send-email-swhiteho@redhat.com> <11914878304004-git-send-email-swhiteho@redhat.com> <11914878323899-git-send-email-swhiteho@redhat.com> <11914878342921-git-send-email-swhiteho@redhat.com> <11914878361239-git-send-email-swhiteho@redhat.com> <11914878383633-git-send-email-swhiteho@redhat.com> <11914878401428-git-send-email-swhiteho@redhat.com> <11914878422398-git-send-email-swhiteho@redhat.com> <1191487844772-git-send-email-swhiteho@redhat.com> <1191487846406-git-send-email-swhiteho@redhat.com> <11914878472056-git-send-email-swhiteho@redhat.com> <11914878492645-git-send-email-swhiteho@redhat.com> <11914878513555-git-send-email-swhiteho@redhat.com> <11914878521254-git-send-email-swhiteho@redhat.com> <119148785427-git-send-email-swhiteho@redhat.com> <11914878551328-git-send-email-swhiteho@redhat.com> <11914878571888-git-send-email-swhiteho@redhat.com> <11914878592314-git-send-email-swhiteho@redhat.com> <1191487861683-git-send-email-swhiteho@redhat.com> <11914878632211-git-send-email-swhiteho@redhat.com> <1191487864951-git-send-email-swhiteho@redhat.com> <11914878661743-git-send-email-swhiteho@redhat.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org From: Patrick Caulfield Under high recovery loads dlm_sendd can monopolise the CPU and cause soft lockups. This one extra and one moved cond_resched() make it yield a little more during such times keeping work moving. Signed-Off-By: Patrick Caulfield Signed-off-by: Steven Whitehouse diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index 62a8a6c..58bf3f5 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c @@ -1264,14 +1264,15 @@ static void send_to_sock(struct connection *con) if (len) { ret = sendpage(con->sock, e->page, offset, len, msg_flags); - if (ret == -EAGAIN || ret == 0) + if (ret == -EAGAIN || ret == 0) { + cond_resched(); goto out; + } if (ret <= 0) goto send_error; - } else { + } /* Don't starve people filling buffers */ cond_resched(); - } spin_lock(&con->writequeue_lock); e->offset += ret; -- 1.5.1.2