[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 gnumach] Enable MACH_HOST and fix non-addressable bitfield
From: |
Samuel Thibault |
Subject: |
Re: [PATCH v2 gnumach] Enable MACH_HOST and fix non-addressable bitfields |
Date: |
Sun, 11 Feb 2024 15:10:10 +0100 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
fixed and applied, thanks!
Damien Zammit, le dim. 11 févr. 2024 12:00:29 +0000, a ecrit:
> This is only enabled when NCPUS > 1.
> Enables some older code paths that allows userspace
> to manage cpu resources via processor set RPCs.
>
> Size of struct task is preserved while making 4 bitfields
> addressable as 4 single byte fields.
>
> ---
> configfrag.ac | 8 ++++++--
> kern/task.h | 10 +++++-----
> 2 files changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/configfrag.ac b/configfrag.ac
> index f9285c9d..b8b41261 100644
> --- a/configfrag.ac
> +++ b/configfrag.ac
> @@ -70,8 +70,12 @@ AC_DEFINE([MACH_DEBUG], [1], [MACH_DEBUG])
> # Fixed priority threads.
> AC_DEFINE([MACH_FIXPRI], [1], [MACH_FIXPRI])
>
> -# Mach host (resource alloc.).
> -AC_DEFINE([MACH_HOST], [0], [MACH_HOST])
> +# Mach host (cpu resource alloc.).
> +[if [ $mach_ncpus -gt 1 ]; then]
> + AC_DEFINE([MACH_HOST], [1], [MACH_HOST])
> +[else]
> + AC_DEFINE([MACH_HOST], [0], [MACH_HOST])
> +[fi]
>
> # IPC debugging calls.
> AC_DEFINE([MACH_IPC_DEBUG], [1], [MACH_IPC_DEBUG])
> diff --git a/kern/task.h b/kern/task.h
> index dec3a530..27970620 100644
> --- a/kern/task.h
> +++ b/kern/task.h
> @@ -61,11 +61,11 @@ struct task {
> decl_simple_lock_data(,lock) /* Task's lock */
> int ref_count; /* Number of references to me */
>
> - /* Flags */
> - unsigned int active:1, /* Task has not been terminated */
> - /* boolean_t */ may_assign:1, /* can assigned pset be changed? */
> - assign_active:1, /* waiting for may_assign */
> - essential:1; /* Is this task essential for the
> system? */
> + /* Addressable flags */
> + unsigned char active; /* Task has not been terminated */
> + unsigned char may_assign; /* can assigned pset be changed? */
> + unsigned char assign_active; /* waiting for may_assign */
> + unsigned char essential; /* Is this task essential for the
> system? */
>
> /* Miscellaneous */
> vm_map_t map; /* Address space description */
> --
> 2.43.0
>
>
>
--
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.