svn commit: r356241 - in head/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux
Dmitry Chagin
dchagin at freebsd.org
Tue Dec 31 22:16:36 UTC 2019
Hi, HNY! What about vdso?
ср, 1 янв. 2020 г. в 01:01, Edward Tomasz Napierala <trasz at freebsd.org>:
> Author: trasz
> Date: Tue Dec 31 22:01:08 2019
> New Revision: 356241
> URL: https://svnweb.freebsd.org/changeset/base/356241
>
> Log:
> 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).
>
> Reviewed by: kib
> MFC after: 2 weeks
> Sponsored by: The FreeBSD Foundation
> Differential Revision: https://reviews.freebsd.org/D22972
>
> Modified:
> head/sys/amd64/linux/linux_dummy.c
> head/sys/amd64/linux32/linux32_dummy.c
> head/sys/arm64/linux/linux_dummy.c
> head/sys/compat/linux/linux_misc.c
> head/sys/i386/linux/linux_dummy.c
>
> Modified: head/sys/amd64/linux/linux_dummy.c
>
> ==============================================================================
> --- head/sys/amd64/linux/linux_dummy.c Tue Dec 31 18:58:29 2019
> (r356240)
> +++ head/sys/amd64/linux/linux_dummy.c Tue Dec 31 22:01:08 2019
> (r356241)
> @@ -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: head/sys/amd64/linux32/linux32_dummy.c
>
> ==============================================================================
> --- head/sys/amd64/linux32/linux32_dummy.c Tue Dec 31 18:58:29 2019
> (r356240)
> +++ head/sys/amd64/linux32/linux32_dummy.c Tue Dec 31 22:01:08 2019
> (r356241)
> @@ -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: head/sys/arm64/linux/linux_dummy.c
>
> ==============================================================================
> --- head/sys/arm64/linux/linux_dummy.c Tue Dec 31 18:58:29 2019
> (r356240)
> +++ head/sys/arm64/linux/linux_dummy.c Tue Dec 31 22:01:08 2019
> (r356241)
> @@ -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: head/sys/compat/linux/linux_misc.c
>
> ==============================================================================
> --- head/sys/compat/linux/linux_misc.c Tue Dec 31 18:58:29 2019
> (r356240)
> +++ head/sys/compat/linux/linux_misc.c Tue Dec 31 22:01:08 2019
> (r356241)
> @@ -2353,3 +2353,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: head/sys/i386/linux/linux_dummy.c
>
> ==============================================================================
> --- head/sys/i386/linux/linux_dummy.c Tue Dec 31 18:58:29 2019
> (r356240)
> +++ head/sys/i386/linux/linux_dummy.c Tue Dec 31 22:01:08 2019
> (r356241)
> @@ -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: */
>
More information about the svn-src-all
mailing list