where is __percpu_seg initialized?
Hi all: I knew the kernel implement the per-cpu variable via __percpu_seg. For example on x86 architecture, it's defined as: #ifdef CONFIG_X86_64 #define __percpu_seg gs #define __percpu_mov_op movq #else #define __percpu_seg fs #define __percpu_mov_op movl #endif But I'm curious where __percpu_seg is initialized?? I fail to find the relative code. Thanks.
load_percpu_segment, which is called by switch_to_new_gdt in setup_per_cpu_areas. -daveti
On Apr 23, 2016, at 3:24 AM, 落痕 <losemyheaven@qq.com> wrote:
Hi all: I knew the kernel implement the per-cpu variable via __percpu_seg. For example on x86 architecture, it's defined as:
#ifdef CONFIG_X86_64 #define __percpu_seg gs #define __percpu_mov_op movq #else #define __percpu_seg fs #define __percpu_mov_op movl #endif
But I'm curious where __percpu_seg is initialized?? I fail to find the relative code. Thanks. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
setup_per_cpu_areas just prepare a per-cpu area for each possible cpu, and it doesn't try to start up other possible cpu(s). The address of a per-cpu area corresponding to this cpu will be written to its per-cpu-area register , before starting up. Starting up other non-boot cpu happens in start_secondary function. Larry ------------------ Original ------------------ From: "Dave Tian"<dave.jing.tian@gmail.com>; Date: Sat, Apr 23, 2016 10:02 PM To: "落痕"<losemyheaven@qq.com>; Cc: "kernelnewbies"<kernelnewbies@kernelnewbies.org>; Subject: Re: where is __percpu_seg initialized? load_percpu_segment, which is called by switch_to_new_gdt in setup_per_cpu_areas. -daveti
On Apr 23, 2016, at 3:24 AM, 落痕 <losemyheaven@qq.com> wrote:
Hi all: I knew the kernel implement the per-cpu variable via __percpu_seg. For example on x86 architecture, it's defined as:
#ifdef CONFIG_X86_64 #define __percpu_seg gs #define __percpu_mov_op movq #else #define __percpu_seg fs #define __percpu_mov_op movl #endif
But I'm curious where __percpu_seg is initialized?? I fail to find the relative code. Thanks. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (2)
-
Dave Tian -
落痕