Quantcast
Channel: Active questions tagged kernel - Stack Overflow
Viewing all articles
Browse latest Browse all 6502

how to solve Pintos project2 userprogram intrcontext error?

$
0
0

Korea's KAIST Revised and Distributed Pintos KAIST Project The same error occurred in all tests in the project 2 user program, so I am asking you this question. As a result of backtrace, an error appears because the return value of the intr_context() function in the thread_yield() function is false, but I don't know the cause and solution of this error. Can you tell me? ㅠㅠ

Kernel panic in run: PANIC at ../../threads/thread.c:338 in thread_yield(): assertion `!intr_context ()' failed.
Call stack: 0x800421874b 0x80042072c0 0x800420a92f 0x8004214d12 0x8004209704 0x8004209b22 0x800420762bTranslation of call stack:0x000000800421874b: debug_panic (lib/kernel/debug.c:32)0x00000080042072c0: thread_yield (threads/thread.c:340)0x000000800420a92f: sema_up (threads/synch.c:124)0x0000008004214d12: interrupt_handler (devices/disk.c:526)0x0000008004209704: intr_handler (threads/interrupt.c:353)0x0000008004209b22: intr_entry (threads/intr-stubs.o:?)0x000000800420762b: kernel_thread (threads/thread.c:456)

thread_yield()

/* Yields the CPU.  The current thread is not put to sleep and   may be scheduled again immediately at the scheduler's whim. */voidthread_yield (void) {    struct thread *curr = thread_current ();    enum intr_level old_level;    ASSERT (!intr_context ());    old_level = intr_disable ();    if (curr != idle_thread)        // list_push_back (&ready_list, &curr->elem);        list_insert_ordered (&ready_list, &curr->elem, thread_compare_priority, 0);    do_schedule (THREAD_READY);    intr_set_level (old_level);}

Viewing all articles
Browse latest Browse all 6502

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>