]) # LC_IS_ENCRYPTED used by LC_CONFIG_CRYPTO
#
+# LC_EXPORT_HAVE_SCHED_SHOW_TASK
+#
+# Linux commit v4.14-rc4-2-g0032f4e88976
+# rcutorture: Dump writer stack if stalled
+#
+AC_DEFUN([LC_EXPORT_HAVE_SCHED_SHOW_TASK], [
+LB_CHECK_EXPORT([sched_show_task], [kernel/sched/core.c],
+ [AC_DEFINE(HAVE_SCHED_SHOW_TASK, 1,
+ [sched_show_task() is exported by the kernel])])
+]) # LC_EXPORT_HAVE_SCHED_SHOW_TASK
+
+#
# LC_I_PAGES
#
# kernel 4.17 commit b93b016313b3ba8003c3b8bb71f569af91f19fc7
# 4.8 - Check export
LC_EXPORT_DEFAULT_FILE_SPLICE_READ
+ # 4.15 - Check export
+ LC_EXPORT_HAVE_SCHED_SHOW_TASK
+
# 5.2 - Check export
LC_ACCOUNT_PAGE_DIRTIED
#include "../ldlm/ldlm_internal.h"
#include "heap.h"
+#include <linux/sched.h>
+#ifdef HAVE_SCHED_SHOW_TASK
+#include <linux/sched/debug.h>
+#endif
+
struct ldlm_namespace;
struct obd_import;
struct ldlm_res_id;
extern lnet_handler_t ptlrpc_handler;
extern struct percpu_ref ptlrpc_pending;
+#ifndef HAVE_SCHED_SHOW_TASK
+#define sched_show_task(task) libcfs_debug_dumpstack((task))
+#endif
+
/* ptlrpcd.c */
int ptlrpcd_start(struct ptlrpcd_ctl *pc);
thread->t_task->comm, thread->t_task->pid,
ms_elapsed, ms_frac);
- libcfs_debug_dumpstack(thread->t_task);
+ sched_show_task(thread->t_task);
} else {
LCONSOLE_WARN("%s: service thread pid %u was inactive for %llu.%03u seconds. Watchdog stack traces are limited to 3 per %u seconds, skipping this one.\n",
thread->t_task->comm, thread->t_task->pid,