Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 May 2018 15:43:35 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r334101 - head/sys/arm64/include
Message-ID:  <201805231543.w4NFhZ20011684@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Wed May 23 15:43:35 2018
New Revision: 334101
URL: https://svnweb.freebsd.org/changeset/base/334101

Log:
  Add GET_STACK_USAGE() for arm64.
  
  Its absence meant that GEOM direct dispatch was disabled (the service
  routines check the current thread's stack usage to determine whether
  to hand off the request to a dedicated thread), and this change is
  sufficient to enable direct dispatch by default.
  
  Reviewed by:	allanjude
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D15527

Modified:
  head/sys/arm64/include/proc.h

Modified: head/sys/arm64/include/proc.h
==============================================================================
--- head/sys/arm64/include/proc.h	Wed May 23 15:26:56 2018	(r334100)
+++ head/sys/arm64/include/proc.h	Wed May 23 15:43:35 2018	(r334101)
@@ -54,4 +54,18 @@ struct syscall_args {
 	int narg;
 };
 
+#ifdef _KERNEL
+
+#include <machine/pcb.h>
+
+#define	GET_STACK_USAGE(total, used) do {				\
+	struct thread *td = curthread;					\
+	(total) = td->td_kstack_pages * PAGE_SIZE - sizeof(struct pcb);	\
+	(used) = (char *)td->td_kstack +				\
+	    td->td_kstack_pages * PAGE_SIZE -				\
+	    (char *)&td;						\
+} while (0)
+
+#endif
+
 #endif /* !_MACHINE_PROC_H_ */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805231543.w4NFhZ20011684>