Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset aae365bc in mainline


Ignore:
Timestamp:
2018-11-07T21:11:52Z (3 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
d19b3fc
Parents:
947ab77e
Message:

Remove RCU and CHT support

Files:
16 deleted
24 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    r947ab77e raae365bc  
    430430! [COMPILER=gcc_cross] CONFIG_LTO (n/y)
    431431
    432 % Kernel RCU algorithm
    433 @ "PREEMPT_PODZIMEK" Preemptible Podzimek-RCU
    434 @ "PREEMPT_A" Preemptible A-RCU
    435 ! RCU (choice)
    436 
    437432% Compress init data
    438433! CONFIG_COMPRESSED_INIT (y/n)
  • defaults/amd64/Makefile.config

    r947ab77e raae365bc  
    4444CONFIG_TEST = y
    4545
    46 # Kernel RCU implementation
    47 RCU = PREEMPT_A
    48 
    4946# Input device class
    5047CONFIG_HID_IN = generic
  • defaults/arm32/Makefile.config

    r947ab77e raae365bc  
    3232CONFIG_TEST = y
    3333
    34 # Kernel RCU implementation
    35 RCU = PREEMPT_A
    36 
    3734# What is your input device?
    3835CONFIG_HID_IN = generic
  • defaults/ia32/Makefile.config

    r947ab77e raae365bc  
    4747CONFIG_TEST = y
    4848
    49 # Kernel RCU implementation
    50 RCU = PREEMPT_A
    51 
    5249# Input device class
    5350CONFIG_HID_IN = generic
  • defaults/ia64/Makefile.config

    r947ab77e raae365bc  
    4444CONFIG_TEST = y
    4545
    46 # Kernel RCU implementation
    47 RCU = PREEMPT_A
    48 
    4946# Input device class
    5047CONFIG_HID_IN = generic
  • defaults/mips32/Makefile.config

    r947ab77e raae365bc  
    3838CONFIG_TEST = y
    3939
    40 # Kernel RCU implementation
    41 RCU = PREEMPT_A
    42 
    4340# Input device class
    4441CONFIG_HID_IN = generic
  • defaults/ppc32/Makefile.config

    r947ab77e raae365bc  
    3535CONFIG_TEST = y
    3636
    37 # Kernel RCU implementation
    38 RCU = PREEMPT_A
    39 
    4037# Input device class
    4138CONFIG_HID_IN = generic
  • defaults/riscv64/Makefile.config

    r947ab77e raae365bc  
    3232CONFIG_TEST = y
    3333
    34 # Kernel RCU implementation
    35 RCU = PREEMPT_A
    36 
    3734# What is your input device?
    3835CONFIG_HID_IN = generic
  • defaults/sparc64/Makefile.config

    r947ab77e raae365bc  
    4747CONFIG_TEST = y
    4848
    49 # Kernel RCU implementation
    50 RCU = PREEMPT_A
    51 
    5249# Input device class
    5350CONFIG_HID_IN = generic
  • defaults/special/Makefile.config

    r947ab77e raae365bc  
    3232CONFIG_TEST = y
    3333
    34 # Kernel RCU implementation
    35 RCU = PREEMPT_A
    36 
    3734# Optimization level
    3835OPTIMIZATION = 3
  • kernel/Makefile

    r947ab77e raae365bc  
    163163        generic/src/adt/bitmap.c \
    164164        generic/src/adt/btree.c \
    165         generic/src/adt/cht.c \
    166165        generic/src/adt/hash_table.c \
    167166        generic/src/adt/list.c \
     
    229228        generic/src/synch/waitq.c \
    230229        generic/src/synch/futex.c \
    231         generic/src/synch/workqueue.c \
    232         generic/src/synch/rcu.c \
    233230        generic/src/smp/ipi.c \
    234231        generic/src/smp/smp.c \
     
    283280                test/atomic/atomic1.c \
    284281                test/btree/btree1.c \
    285                 test/cht/cht1.c \
    286282                test/fault/fault1.c \
    287283                test/mm/falloc1.c \
     
    292288                test/synch/semaphore1.c \
    293289                test/synch/semaphore2.c \
    294                 test/synch/workqueue2.c \
    295                 test/synch/workqueue3.c \
    296                 test/synch/rcu1.c \
    297290                test/print/print1.c \
    298291                test/print/print2.c \
  • kernel/generic/include/arch.h

    r947ab77e raae365bc  
    6666typedef struct {
    6767        size_t preemption;     /**< Preemption disabled counter and flag. */
    68 #ifdef RCU_PREEMPT_A
    69         size_t rcu_nesting;    /**< RCU nesting count and flag. */
    70 #endif
    7168        struct thread *thread; /**< Current thread. */
    7269        struct task *task;     /**< Current task. */
  • kernel/generic/include/cpu.h

    r947ab77e raae365bc  
    3838#include <mm/tlb.h>
    3939#include <synch/spinlock.h>
    40 #include <synch/rcu_types.h>
    4140#include <proc/scheduler.h>
    4241#include <arch/cpu.h>
     
    104103        list_t smp_pending_calls;
    105104
    106         /** RCU per-cpu data. Uses own locking. */
    107         rcu_cpu_data_t rcu;
    108 
    109105        /**
    110106         * Stack used by scheduler when there is no running thread.
  • kernel/generic/include/proc/task.h

    r947ab77e raae365bc  
    4343#include <synch/mutex.h>
    4444#include <synch/futex.h>
    45 #include <synch/workqueue.h>
    46 #include <adt/cht.h>
    4745#include <adt/list.h>
    4846#include <adt/odict.h>
  • kernel/generic/include/proc/thread.h

    r947ab77e raae365bc  
    4141#include <cpu.h>
    4242#include <synch/spinlock.h>
    43 #include <synch/rcu_types.h>
    4443#include <adt/odict.h>
    4544#include <mm/slab.h>
     
    194193        thread_id_t tid;
    195194
    196         /** Work queue this thread belongs to or NULL. Immutable. */
    197         struct work_queue *workq;
    198         /** Links work queue threads. Protected by workq->lock. */
    199         link_t workq_link;
    200         /** True if the worker was blocked and is not running. Use thread->lock. */
    201         bool workq_blocked;
    202         /** True if the worker will block in order to become idle. Use workq->lock. */
    203         bool workq_idling;
    204 
    205         /** RCU thread related data. Protected by its own locks. */
    206         rcu_thread_data_t rcu;
    207 
    208195        /** Architecture-specific data. */
    209196        thread_arch_t arch;
  • kernel/generic/src/console/cmd.c

    r947ab77e raae365bc  
    7070#include <sysinfo/sysinfo.h>
    7171#include <symtab.h>
    72 #include <synch/workqueue.h>
    73 #include <synch/rcu.h>
    7472#include <errno.h>
    7573
     
    536534};
    537535
    538 /* Data and methods for the 'workq' command */
    539 static int cmd_workq(cmd_arg_t *argv);
    540 static cmd_info_t workq_info = {
    541         .name = "workq",
    542         .description = "Show global workq information.",
    543         .func = cmd_workq,
    544         .argc = 0
    545 };
    546 
    547 /* Data and methods for the 'workq' command */
    548 static int cmd_rcu(cmd_arg_t *argv);
    549 static cmd_info_t rcu_info = {
    550         .name = "rcu",
    551         .description = "Show RCU run-time statistics.",
    552         .func = cmd_rcu,
    553         .argc = 0
    554 };
    555 
    556536/* Data and methods for 'ipc' command */
    557537static int cmd_ipc(cmd_arg_t *argv);
     
    618598        &physmem_info,
    619599        &reboot_info,
    620         &rcu_info,
    621600        &sched_info,
    622601        &set4_info,
     
    628607        &uptime_info,
    629608        &version_info,
    630         &workq_info,
    631609        &zones_info,
    632610        &zone_info,
     
    13021280}
    13031281
    1304 /** Prints information about the global work queue.
    1305  *
    1306  * @param argv Ignores
    1307  *
    1308  * @return Always 1
    1309  */
    1310 int cmd_workq(cmd_arg_t *argv)
    1311 {
    1312         workq_global_print_info();
    1313         return 1;
    1314 }
    1315 
    1316 /** Prints RCU statistics.
    1317  *
    1318  * @param argv Ignores
    1319  *
    1320  * @return Always 1
    1321  */
    1322 int cmd_rcu(cmd_arg_t *argv)
    1323 {
    1324         rcu_print_stat();
    1325         return 1;
    1326 }
    1327 
    13281282/** Command for listing memory zones
    13291283 *
  • kernel/generic/src/cpu/cpu.c

    r947ab77e raae365bc  
    5050#include <sysinfo/sysinfo.h>
    5151#include <arch/cycle.h>
    52 #include <synch/rcu.h>
    5352
    5453cpu_t *cpus;
     
    108107        cpu_identify();
    109108        cpu_arch_init();
    110         rcu_cpu_init();
    111109}
    112110
  • kernel/generic/src/main/kinit.c

    r947ab77e raae365bc  
    7979#include <synch/waitq.h>
    8080#include <synch/spinlock.h>
    81 #include <synch/workqueue.h>
    82 #include <synch/rcu.h>
    8381
    8482#define ALIVE_CHARS  4
     
    109107
    110108        interrupts_disable();
    111 
    112         /* Start processing RCU callbacks. RCU is fully functional afterwards. */
    113         rcu_kinit_init();
    114 
    115         /*
    116          * Start processing work queue items. Some may have been queued during boot.
    117          */
    118         workq_global_worker_init();
    119109
    120110#ifdef CONFIG_SMP
  • kernel/generic/src/main/main.c

    r947ab77e raae365bc  
    7878#include <synch/waitq.h>
    7979#include <synch/futex.h>
    80 #include <synch/workqueue.h>
    8180#include <smp/smp_call.h>
    8281#include <arch/arch.h>
     
    275274
    276275        smp_call_init();
    277         workq_global_init();
    278276        clock_counter_init();
    279277        timeout_init();
  • kernel/generic/src/proc/scheduler.c

    r947ab77e raae365bc  
    5454#include <atomic.h>
    5555#include <synch/spinlock.h>
    56 #include <synch/workqueue.h>
    57 #include <synch/rcu.h>
    5856#include <config.h>
    5957#include <context.h>
     
    9088{
    9189        before_thread_runs_arch();
    92         rcu_before_thread_runs();
    9390
    9491#ifdef CONFIG_FPU_LAZY
     
    131128static void after_thread_ran(void)
    132129{
    133         workq_after_thread_ran();
    134         rcu_after_thread_ran();
    135130        after_thread_ran_arch();
    136131}
     
    430425
    431426                case Exiting:
    432                         rcu_thread_exiting();
    433427                repeat:
    434428                        if (THREAD->detached) {
  • kernel/generic/src/proc/the.c

    r947ab77e raae365bc  
    6060        the->as = NULL;
    6161        the->magic = MAGIC;
    62 #ifdef RCU_PREEMPT_A
    63         the->rcu_nesting = 0;
    64 #endif
    6562}
    6663
  • kernel/generic/src/proc/thread.c

    r947ab77e raae365bc  
    4848#include <synch/spinlock.h>
    4949#include <synch/waitq.h>
    50 #include <synch/workqueue.h>
    51 #include <synch/rcu.h>
    5250#include <cpu.h>
    5351#include <str.h>
     
    6967#include <syscall/copy.h>
    7068#include <errno.h>
     69#include <debug.h>
    7170
    7271/** Thread states */
     
    272271{
    273272        assert(irq_spinlock_locked(&thread->lock));
    274         workq_before_thread_is_ready(thread);
    275273}
    276274
     
    399397        thread->task = task;
    400398
    401         thread->workq = NULL;
    402 
    403399        thread->fpu_context_exists = false;
    404400        thread->fpu_context_engaged = false;
     
    414410        /* Might depend on previous initialization */
    415411        thread_create_arch(thread);
    416 
    417         rcu_thread_init(thread);
    418412
    419413        if ((flags & THREAD_FLAG_NOATTACH) != THREAD_FLAG_NOATTACH)
  • kernel/test/test.c

    r947ab77e raae365bc  
    4242#include <atomic/atomic1.def>
    4343#include <btree/btree1.def>
    44 #include <cht/cht1.def>
    4544#include <debug/mips1.def>
    4645#include <fault/fault1.def>
     
    5251#include <synch/semaphore1.def>
    5352#include <synch/semaphore2.def>
    54 #include <synch/rcu1.def>
    55 #include <synch/workqueue2.def>
    56 #include <synch/workqueue3.def>
    5753#include <print/print1.def>
    5854#include <print/print2.def>
  • kernel/test/test.h

    r947ab77e raae365bc  
    6060extern const char *test_avltree1(void);
    6161extern const char *test_btree1(void);
    62 extern const char *test_cht1(void);
    6362extern const char *test_mips1(void);
    6463extern const char *test_fault1(void);
     
    7877extern const char *test_thread1(void);
    7978extern const char *test_smpcall1(void);
    80 extern const char *test_workqueue_all(void);
    81 extern const char *test_workqueue3(void);
    82 extern const char *test_workqueue3quit(void);
    83 extern const char *test_rcu1(void);
    8479
    8580extern test_t tests[];
Note: See TracChangeset for help on using the changeset viewer.