Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp3818029pxb; Mon, 4 Oct 2021 10:14:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxy8x/WuVAbasiOCl3nJ0mkAGYVF/XVey/nyM6ejkl1xVSx2WiUE1Fb6kjveiuD9HnncPLh X-Received: by 2002:a17:906:4ccf:: with SMTP id q15mr18277262ejt.9.1633367665041; Mon, 04 Oct 2021 10:14:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633367665; cv=none; d=google.com; s=arc-20160816; b=PvvP2eBYIhiQV0TLEJqJoRK6pUqGpsAwmM9gWYOwF3OxJ3Rp9YkhdhKa82FABhdgfv 2cVAIBFLYLVqDn/XnYgWUckCJWWgTc7DVWUh8dBerzv9MNpKyso9CV0DTuq/PXhpYt6Q hmNHc/VWiG/XFF/Y2heoJEW5AN/PPLrncxBJ+xEWKUSBgy86KfWEDQWyZLnBTpPN4nfK HtcbpVWu7v2MTc14yFUJxNda75F2KUTFDDO+X98ZtILvaUaVbcMvsHQRgck54+92/4uZ eIRg5dHzd1bRrfKrppbfrgfIV3ycO3IitZRz0rpG4ameSVUldUppoPGtd+4dfkqPYw+s HvUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject; bh=X/GNi8qv88+7JJWy01MRaFFiwS6RYOXbAlOkP9TUJis=; b=Zdwyg/7uD4GkSlkV/bO+ZQfvLhyCS3s6RtTAU1X+hdr3EzEp4p7yx8trf3KJdd1hqU 6MPbvrCW0KVKU/6K+qph9vk3HASgebkUmtvzkJ+H2fyDhRk5dlUKkAavUE5+iXY0SqDy +V9ZsjFHHXM7B4Mrq72OerY5LT8TE/IIihh0zPhgAD4PmSoc8EA94sOVVwqp/y30+H+P cQxh8Df5+XDJGgRRaVU3ZIherFvtKJHrc/A2tR/ZTw7ki2hfjxCFEPajfGYko0wbCLv6 3TTBeo5F3CW9W+uR+fa+QcIrznN7lfGiuQs0hCulUJfub4LVIN+lTMe4BVvsAsR/0EZJ dG7A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id di7si24020409ejc.345.2021.10.04.10.14.01; Mon, 04 Oct 2021 10:14:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233188AbhJDOS1 (ORCPT + 99 others); Mon, 4 Oct 2021 10:18:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:47580 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233671AbhJDOSQ (ORCPT ); Mon, 4 Oct 2021 10:18:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 310F5611C1; Mon, 4 Oct 2021 14:16:27 +0000 (UTC) Subject: [PATCH 4/5] SUNRPC: Add trace event when alloc_pages_bulk() makes no progress From: Chuck Lever To: bfields@fieldses.org Cc: linux-nfs@vger.kernel.org, linux-rdma@vger.kernel.org Date: Mon, 04 Oct 2021 10:16:26 -0400 Message-ID: <163335698647.3921.16691202918962654108.stgit@klimt.1015granger.net> In-Reply-To: <163335690747.3921.13072315880207206379.stgit@klimt.1015granger.net> References: <163335690747.3921.13072315880207206379.stgit@klimt.1015granger.net> User-Agent: StGit/1.3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org This is an operational low memory situation that needs to be flagged. The new tracepoint records a timestamp and the nfsd thread that failed to allocate pages. Signed-off-by: Chuck Lever --- include/trace/events/sunrpc.h | 18 ++++++++++++++++++ net/sunrpc/svc_xprt.c | 1 + 2 files changed, 19 insertions(+) diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index 2d04eb96d418..fb016308c185 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h @@ -1859,6 +1859,24 @@ TRACE_EVENT(svc_wake_up, TP_printk("pid=%d", __entry->pid) ); +TRACE_EVENT(svc_alloc_arg_err, + TP_PROTO( + unsigned int pages + ), + + TP_ARGS(pages), + + TP_STRUCT__entry( + __field(unsigned int, pages) + ), + + TP_fast_assign( + __entry->pages = pages; + ), + + TP_printk("pages=%u", __entry->pages) +); + TRACE_EVENT(svc_handle_xprt, TP_PROTO(struct svc_xprt *xprt, int len), diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index 6316bd2b8f37..1e99ba1b9d72 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c @@ -687,6 +687,7 @@ static int svc_alloc_arg(struct svc_rqst *rqstp) set_current_state(TASK_RUNNING); return -EINTR; } + trace_svc_alloc_arg_err(pages); schedule_timeout(msecs_to_jiffies(500)); } rqstp->rq_page_end = &rqstp->rq_pages[pages];