Chen & Jordan,

I encountered on exception as blew on Ubuntu12.04 (on virtual machine by 
Virtual Box, VT-x enabled) with GCC46.  Log is attached. Do you have any idea 
on it?

$ qemu-system-i386 -smp 4 -serial file:ovmf.log

Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
qemu: fatal: Trying to execute code outside RAM or ROM at 0x000a0000

EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000633
ESI=00000000 EDI=00001ff8 EBP=00000000 ESP=00000000
EIP=00000ffc EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 0000ffff 00009300
CS =9f00 0009f000 0000ffff 00009b00
SS =0000 00000000 0000ffff 00009300
DS =0000 00000000 0000ffff 00009300
FS =0000 00000000 0000ffff 00009300
GS =0000 00000000 0000ffff 00009300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     00000000 0000ffff
IDT=     00000000 0000ffff
CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=00000000 CCD=00000000 CCO=SUBW    
EFER=0000000000000000
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
Aborted (core dumped)

Thanks!
Jeff
-----Original Message-----
From: Chen Fan [mailto:[email protected]] 
Sent: Thursday, September 18, 2014 11:12 AM
To: [email protected]
Cc: Jordan Justen; Fan, Jeff; Andrew Fish
Subject: [RFC v3 00/19] Introduce Mp Service protocol to UefiCpuPkg

This series patchset try to implement Mp Service protocol in UefiCpuPkg, Jordan 
had implemented the startup APs code, and I try to add more initialization code 
to let all APs work up, this Mp Service protocol's implementation used 
EmulatorPkg/MpService for reference.
this patches works on my github:
  https://github.com/ChenFanFnst/edk2/tree/cpu-mp-service

V2-V3:
  1. rebase codes due to Jordan'tree updated:
     https://github.com/jljusten/edk2/tree/ap-startup-example
  2. add supported on Ia32 arch
  3. add a new Lock to replace present SpinLock mechanisms in mutilple
     processors, maybe the SpinLock mechanisms is not MP safe.
  4. add function header
  5. add StartupAllAPs() supported
  6. add SwitchBSP() function, which is unsupported.

V1-V2:
  1. do not call anything EFI API from APs.
  2. add AP busy-wait for task assignment from BSP and get rid of
     IPI sent mechanism.

TODO:
  1) StartupThisAP/StartAllAps: when Timeout expires before AP returns
     from Procedure, constrainedly terminate the executed Procedure.
 
Any Comment is welcome.

Chen Fan (13):
  UefiCpuPkg/CpuDxe: Introduce AsmApDoneWithCommonStack
  UefiCpuPkg/CpuDxe: Waiting for Aps initialization done
  UefiCpuPkg/CpuDxe: Switch Ap CommonStack with NewStack
  UefiCpuPkg/CpuDxe: install Mp Service protocol
  UefiCpuPkg/CpuDxe: implement Mp Protocol: GetNumberOfProcessors()
  UefiCpuPkg/CpuDxe: implement Mp Protocol: WhoAmI()
  UefiCpuPkg/CpuDxe: implement Mp Services: GetProcessorInfo()
  UefiCpuPkg/CpuDxe: implement Mp Protocol: EnableDisableAP()
  UefiCpuPkg/CpuDxe: implement Mp Protocol: StartupThisAP()
  UefiCpuPkg/CpuDxe: introduce CPU bus lock for sync data
  UefiCpuPkg/CpuDxe: implement Mp Services: StartupAllAPs()
  UefiCpuPkg/CpuDxe: implement Mp Services: SwitchBSP()
  UefiCpuPkg/CpuDxe: add Mp Service TestCase

Jordan Justen (6):
  UefiCpuPkg/CpuDxe: Add no-op InitializeMpSupport
  UefiCpuPkg/CpuDxe: Add ApEntryPointInC
  UefiCpuPkg/CpuDxe: Add stackless assembly AP entry points
  UefiCpuPkg/CpuDxe: Move GDT structures into CpuGdt.h
  UefiCpuPkg/CpuDxe: Add StartApsStackless routine
  UefiCpuPkg/CpuDxe: Startup APs

 UefiCpuPkg/CpuDxe/ApStartup.asm   |  111 +++
 UefiCpuPkg/CpuDxe/ApStartup.c     |  209 ++++++
 UefiCpuPkg/CpuDxe/CpuDxe.c        |    5 +
 UefiCpuPkg/CpuDxe/CpuDxe.inf      |    8 +
 UefiCpuPkg/CpuDxe/CpuGdt.c        |   52 +-
 UefiCpuPkg/CpuDxe/CpuGdt.h        |   72 ++
 UefiCpuPkg/CpuDxe/CpuMp.c         | 1349 +++++++++++++++++++++++++++++++++++++
 UefiCpuPkg/CpuDxe/CpuMp.h         |  643 ++++++++++++++++++
 UefiCpuPkg/CpuDxe/CpuMpTest.c     |   76 +++
 UefiCpuPkg/CpuDxe/Ia32/MpAsm.S    |  109 +++
 UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm |  144 ++++
 UefiCpuPkg/CpuDxe/X64/MpAsm.S     |  111 +++
 UefiCpuPkg/CpuDxe/X64/MpAsm.nasm  |  142 ++++
 13 files changed, 2980 insertions(+), 51 deletions(-)  create mode 100644 
UefiCpuPkg/CpuDxe/ApStartup.asm  create mode 100644 
UefiCpuPkg/CpuDxe/ApStartup.c  create mode 100644 UefiCpuPkg/CpuDxe/CpuGdt.h  
create mode 100644 UefiCpuPkg/CpuDxe/CpuMp.c  create mode 100644 
UefiCpuPkg/CpuDxe/CpuMp.h  create mode 100644 UefiCpuPkg/CpuDxe/CpuMpTest.c  
create mode 100644 UefiCpuPkg/CpuDxe/Ia32/MpAsm.S  create mode 100644 
UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm  create mode 100644 
UefiCpuPkg/CpuDxe/X64/MpAsm.S  create mode 100644 
UefiCpuPkg/CpuDxe/X64/MpAsm.nasm

--
1.9.3

Attachment: ovmf.log
Description: ovmf.log

------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to