Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Aug 2020 20:12:08 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r364525 - in stable/12/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux
Message-ID:  <202008232012.07NKC8wi014687@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Sun Aug 23 20:12:07 2020
New Revision: 364525
URL: https://svnweb.freebsd.org/changeset/base/364525

Log:
  MFC r356241:
  
  Add basic getcpu(2) support to linuxulator.  The purpose of this
  syscall is to query the CPU number and the NUMA domain the calling
  thread is currently running on.  The third argument is ignored.
  It doesn't do anything regarding scheduling - it's literally
  just a way to query the current state, without any guarantees
  you won't get rescheduled an opcode later.
  
  This unbreaks Java from CentOS 8
  (java-11-openjdk-11.0.5.10-0.el8_0.x86_64).
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/12/sys/amd64/linux/linux_dummy.c
  stable/12/sys/amd64/linux32/linux32_dummy.c
  stable/12/sys/arm64/linux/linux_dummy.c
  stable/12/sys/compat/linux/linux_misc.c
  stable/12/sys/i386/linux/linux_dummy.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/amd64/linux/linux_dummy.c
==============================================================================
--- stable/12/sys/amd64/linux/linux_dummy.c	Sun Aug 23 20:10:10 2020	(r364524)
+++ stable/12/sys/amd64/linux/linux_dummy.c	Sun Aug 23 20:12:07 2020	(r364525)
@@ -102,8 +102,6 @@ DUMMY(tee);
 DUMMY(vmsplice);
 /* Linux 2.6.18: */
 DUMMY(move_pages);
-/* Linux 2.6.19: */
-DUMMY(getcpu);
 /* Linux 2.6.22: */
 DUMMY(signalfd);
 /* Linux 2.6.27: */

Modified: stable/12/sys/amd64/linux32/linux32_dummy.c
==============================================================================
--- stable/12/sys/amd64/linux32/linux32_dummy.c	Sun Aug 23 20:10:10 2020	(r364524)
+++ stable/12/sys/amd64/linux32/linux32_dummy.c	Sun Aug 23 20:12:07 2020	(r364525)
@@ -108,8 +108,6 @@ DUMMY(tee);
 DUMMY(vmsplice);
 /* Linux 2.6.18: */
 DUMMY(move_pages);
-/* Linux 2.6.19: */
-DUMMY(getcpu);
 /* Linux 2.6.22: */
 DUMMY(signalfd);
 /* Linux 2.6.27: */

Modified: stable/12/sys/arm64/linux/linux_dummy.c
==============================================================================
--- stable/12/sys/arm64/linux/linux_dummy.c	Sun Aug 23 20:10:10 2020	(r364524)
+++ stable/12/sys/arm64/linux/linux_dummy.c	Sun Aug 23 20:12:07 2020	(r364525)
@@ -104,8 +104,6 @@ DUMMY(tee);
 DUMMY(vmsplice);
 /* Linux 2.6.18: */
 DUMMY(move_pages);
-/* Linux 2.6.19: */
-DUMMY(getcpu);
 /* Linux 2.6.27: */
 DUMMY(signalfd4);
 DUMMY(inotify_init1);

Modified: stable/12/sys/compat/linux/linux_misc.c
==============================================================================
--- stable/12/sys/compat/linux/linux_misc.c	Sun Aug 23 20:10:10 2020	(r364524)
+++ stable/12/sys/compat/linux/linux_misc.c	Sun Aug 23 20:12:07 2020	(r364525)
@@ -2691,3 +2691,19 @@ out:
 	td->td_retval[0] = dst - args->buf;
 	return (error);
 }
+
+int
+linux_getcpu(struct thread *td, struct linux_getcpu_args *args)
+{
+	int cpu, error, node;
+
+	cpu = td->td_oncpu; /* Make sure it doesn't change during copyout(9) */
+	error = 0;
+	node = 0; /* XXX: Fake NUMA node 0 for now */
+
+	if (args->cpu != NULL)
+		error = copyout(&cpu, args->cpu, sizeof(l_int));
+	if (args->node != NULL)
+		error = copyout(&node, args->node, sizeof(l_int));
+	return (error);
+}

Modified: stable/12/sys/i386/linux/linux_dummy.c
==============================================================================
--- stable/12/sys/i386/linux/linux_dummy.c	Sun Aug 23 20:10:10 2020	(r364524)
+++ stable/12/sys/i386/linux/linux_dummy.c	Sun Aug 23 20:12:07 2020	(r364525)
@@ -104,8 +104,6 @@ DUMMY(tee);
 DUMMY(vmsplice);
 /* Linux 2.6.18: */
 DUMMY(move_pages);
-/* Linux 2.6.19: */
-DUMMY(getcpu);
 /* Linux 2.6.22: */
 DUMMY(signalfd);
 /* Linux 2.6.27: */



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