2016-10-01 12 views
0

私は、ubuntu 14.04 x64システムを実行している私の家のコンピュータから作業している、ピントズプロジェクトを始めたばかりです。ピントを実行しているときにテストでタイムアウトが発生する

(それがデフォルトでQEMUを実行することに注意してください)私はsrc/threads/ディレクトリからプロジェクトをコンパイルすることができるよ、と初期テストpintos run alarm-multipleは大丈夫動作するようです:

[email protected]:~/Documents/pintos/src/threads/build$ pintos run alarm-multiple 
Prototype mismatch: sub main::SIGVTALRM() vs none at /home/zay/Documents/pintos/src/utils/pintos line 935. 
Constant subroutine SIGVTALRM redefined at /home/zay/Documents/pintos/src/utils/pintos line 927. 
qemu-system-x86_64 -drive cache=writeback,file=/tmp/YS3E7FICwo.dsk -m 4 -net none -serial stdio 
PiLo hda1 
Loading.......... 
Kernel command line: run alarm-multiple 
Pintos booting with 4,088 kB RAM... 
382 pages available in kernel pool. 
382 pages available in user pool. 
Calibrating timer... 286,310,400 loops/s. 
Boot complete. 
Executing 'alarm-multiple': 
(alarm-multiple) begin 
(alarm-multiple) Creating 5 threads to sleep 7 times each. 
(alarm-multiple) Thread 0 sleeps 10 ticks each time, 
(alarm-multiple) thread 1 sleeps 20 ticks each time, and so on. 
(alarm-multiple) If successful, product of iteration count and 
(alarm-multiple) sleep duration will appear in nondescending order. 
(alarm-multiple) thread 0: duration=10, iteration=1, product=10 
(alarm-multiple) thread 0: duration=10, iteration=2, product=20 

しかし、私は下make checkを実行するとsrc/threads/build、すべてのテストがタイムアウト・エラーを取得:私はこの問題を解決するために行う必要がありますどのような変更

[email protected]:~/Documents/pintos/src/threads/build$ make check 
pintos -v -k -T 60 --qemu -- -q run alarm-multiple < /dev/null 2> tests/threads/alarm-multiple.errors > tests/threads/alarm-multiple.output 
perl -I../.. ../../tests/threads/alarm-multiple.ck tests/threads/alarm-multiple tests/threads/alarm-multiple.result 
FAIL tests/threads/alarm-multiple 
run: TIMEOUT after 61 seconds of wall-clock time - load average: 0.20, 0.45, 0.26 
pintos -v -k -T 60 --qemu -- -q run alarm-simultaneous < /dev/null 2> tests/threads/alarm-simultaneous.errors > tests/threads/alarm-simultaneous.output 
perl -I../.. ../../tests/threads/alarm-simultaneous.ck tests/threads/alarm-simultaneous tests/threads/alarm-simultaneous.result 
FAIL tests/threads/alarm-simultaneous 
run: TIMEOUT after 61 seconds of wall-clock time - load average: 0.18, 0.40, 0.25 
pintos -v -k -T 60 --qemu -- -q run alarm-priority < /dev/null 2> tests/threads/alarm-priority.errors > tests/threads/alarm-priority.output 
perl -I../.. ../../tests/threads/alarm-priority.ck tests/threads/alarm-priority tests/threads/alarm-priority.result 
FAIL tests/threads/alarm-priority 
run: TIMEOUT after 61 seconds of wall-clock time - load average: 0.10, 0.34, 0.2 

答えて

0

明らかに、QEMUはポート0x8900の電源切断シーケンスをサポートしていません。ここで(chaOsで見つかった)、それは私のために働く作られた修正は次のとおりです。ファイルにdevices/shutdown.cパッチshutdown_power_offは、次のように:

void 
shutdown_power_off (void) 
{ 
    // ... 
    printf ("Powering off...\n"); 
    serial_flush(); 
    outw (0xB004, 0x2000); // <-- Add this line 
    // ... 
} 
関連する問題