Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:init\main.c Create Date:2022-07-28 13:53:37
Last Modify:2022-05-23 13:07:03 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:start_kernel

Proto:asmlinkage __visible void __init start_kernel(void)

Type:void

Parameter:Nothing

581  set_task_stack_end_magic( & init_task)
582  smp_setup_processor_id()
583  debug_objects_early_init()
585  group_init_early - cgroup initialization at system boot* Initialize cgroups at system boot, and initialize any* subsystems that request early init.
587  local_irq_disable()
588  Debug helper: via this flag we know that we are in 'early bootup code'* where only the boot processor is running with IRQ disabled = true
594  Activate the first processor.
595  page_address_init()
596  pr_notice("%s", linux_banner)
597  early_security_init()
598  setup_arch - architecture-specific boot-time initializations* Note: On x86_64, fixmaps are ready for use even before this is called.
599  We need to store the untouched command line for future reference.* We also need to store the touched command line since the parameter* parsing is performed in place, and we should allow a component to* store reference of name/value for future reference.
600  setup_nr_cpu_ids()
601  setup_per_cpu_areas()
602  smp_prepare_boot_cpu()
603  Must be called _AFTER_ setting up the per_cpu areas
605  build_all_zonelists(NULL)
606  page_alloc_init()
608  pr_notice("Kernel command line: %s\n", Untouched command line saved by arch-specific code. )
610  jump_label_init()
611  Arch code calls this early on, or if not, just before other parsing.
612  after_dashes = Args looks like "foo=bar,bar2 baz=fuz wiz".
616  If Not IS_ERR_OR_NULL(after_dashes) Then Args looks like "foo=bar,bar2 baz=fuz wiz".
624  setup_log_buf(0)
625  s/dcache.c
626  Sort the kernel's built-in exception table
627  trap_init()
628  Set up kernel memory allocators
630  ftrace_init()
633  early_trace_init()
640  sched_init()
645  Even if we don't have any preemption, we need preempt disable/enable* to be barriers, so that we don't have things like get_user/put_user* that can cause faults and scheduling migrate into our preempt-protected* region.()
646  If WARN(!Some architectures don't define arch_irqs_disabled(), so even if either* definition would be fine we need to use different ones for the time being* to avoid build issues.(), "Interrupts were enabled *very* early, fixing it\n") Then local_irq_disable()
649  radix_tree_init()
655  housekeeping_init()
662  workqueue_init_early - early init for workqueue subsystem* This is the first half of two-staged workqueue subsystem initialization* and invoked as soon as the bare basics - memory allocation, cpumasks and* idr are up
664  rcu_init()
667  trace_init()
669  If initcall_debug Then initcall_debug_enable()
672  context_tracking_init()
674  [ These __weak aliases are kept in a separate compilation unit, so that* GCC does not inline them incorrectly. ]
675  init_IRQ()
676  tick_init()
677  rcu_init_nohz()
678  init_timers()
679  hrtimers_init()
680  softirq_init()
681  mekeeping_init - Initializes the clocksource and common timekeeping values
691  rand_initialize()
692  add_latent_entropy()
693  add_device_randomness(command_line, strlen - Find the length of a string*@s: The string to be sized)
694  boot_init_stack_canary()
696  time_init()
697  printk_safe_init()
698  perf_event_init()
699  profile_init()
700  call_function_init()
701  WARN(!Some architectures don't define arch_irqs_disabled(), so even if either* definition would be fine we need to use different ones for the time being* to avoid build issues.(), "Interrupts were enabled early\n")
703  Debug helper: via this flag we know that we are in 'early bootup code'* where only the boot processor is running with IRQ disabled = false
704  The local_irq_*() APIs are equal to the raw_local_irq*()* if !TRACE_IRQFLAGS.()
706  kmem_cache_init_late()
713  console_init()
714  If panic_later Then panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns.
718  lockdep_init()
725  locking_selftest()
733  mem_encrypt_init()
744  setup_per_cpu_pageset()
745  numa_policy_init()
746  acpi_early_init()
747  If late_time_init Then late_time_init()
749  sched_clock_init()
750  calibrate_delay()
751  pid_idr_init()
752  anon_vma helper functions.
757  thread_stack_cache_init()
758  alise the credentials stuff
759  fork_init()
760  proc_caches_init()
761  uts_ns_init()
762  buffer_init()
763  key_init()
764  prototypes
765  dbg_late_init()
766  vfs_caches_init()
767  pagecache_init()
768  signals_init()
769  seq_file_init()
770  proc_root_init()
771  nsfs_init()
772  cpuset_init()
773  group_init - cgroup initialization* Register cgroup filesystem and /proc file, and initialize* any subsystems that didn't request early init.
774  taskstats_init_early()
775  delayacct_init()
777  poking_init()
778  check_bugs()
780  acpi_subsystem_init()
781  arch_post_acpi_subsys_init()
782  sfi_init_late()
785  arch_call_rest_init()