jmolloy / pedigree

Pedigree operating system
http://pedigree.googlecode.com
ISC License
89 stars 5 forks source link

x86_64 SMP problem #22

Closed Xoooo closed 8 years ago

Xoooo commented 8 years ago

I modified the script file:

!/bin/bash

SERIAL_PORTS="-serial file:./../build/serial.txt -serial file:./../build/memlog.txt"

if [ ! -z "$NO_SERIAL_PORTS" ]; then SERIAL_PORTS="" fi

AIO="native"

if [ ! "$(uname -s)" == "Linux" ]; then AIO="threads" fi

qemu-system-x86_64 -smp 4 -m 512\ -drive file=./../build/hdd.img,if=ide,media=disk,cache=writeback,aio=$AIO,index=0,format=raw \ -drive file=./../build/pedigree.iso,if=ide,media=cdrom,cache=writeback,aio=$AIO,index=2,format=raw \ -boot d -vga std $SERIAL_PORTS -rtc base=utc $*

However, the system enters the exception handler...

miselin commented 8 years ago

Thanks for the report, I'm looking into this.

The GPF on startup is fixed locally (race condition), but there's a nagging bug that leads to running code at 0x0 - but only if -smp is >1. Working on resolving that now.

Xoooo commented 8 years ago

Thanks for reply. : )

miselin commented 8 years ago

Please give the https://github.com/jmolloy/pedigree/tree/fix-multiprocessor branch a go, does it work for you?

I'm still working on some concurrency problems, but that should be much more functional than the code from a few days ago.

miselin commented 8 years ago

The fix-multiprocessor branch has now been merged back into develop. I'll close this for now, please feel free to re-open if there's any further issues that arise with the SMP support on x86_64. Thanks!