Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 16 Aug 2002 03:17:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 16 Aug 2002 03:17:13 -0400 Received: from web12407.mail.yahoo.com ([216.136.173.134]:21521 "HELO web12407.mail.yahoo.com") by vger.kernel.org with SMTP id ; Fri, 16 Aug 2002 03:17:12 -0400 Message-ID: <20020816072109.53259.qmail@web12407.mail.yahoo.com> Date: Fri, 16 Aug 2002 00:21:09 -0700 (PDT) From: Amol Lad Subject: SMP boot query To: linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1323 Lines: 47 Hi, Lets assume, boot processor has done all its initialization and is booting the second processor. In do_boot_cpu(), it calls fork_by_hand() and creates an idle task for cpu#2 . It then iniliazes all relevant fields of 'idle' task for cpu#2. It also does following start_eip = setup_trampoline(); stack_start.esp = (void *) (1024 + PAGE_SIZE + (char *)idle); After doing lot of APIC related stuff, it sends Startup IPI to cpu#2 to start booting from start_eip . cpu#2, from trampoline code jumps to startup_32 and from there to initialize_secondary. initialize_secondary is asm volatile( "movl %0,%%esp\n\t" "jmp *%1" : :"r" (current->thread.esp),"r" (current->thread.eip)); Now my questions 1] what is trampoline ? 2] I did not understood, how 'current' above is set to new idle task created in fork_by_hand (is some magic done in start_stack.esp ?? ) -- Amol __________________________________________________ Do You Yahoo!? HotJobs - Search Thousands of New Jobs http://www.hotjobs.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/