Rink Springer <rink@rink.nu> [Mon, 23 Jan 2012 08:57:24 +0100] rev 1334
i386: Remove two exported symbols that don't exist anymore
Rink Springer <rink@rink.nu> [Mon, 23 Jan 2012 08:57:05 +0100] rev 1333
i386: Add symbols we need for the IRQ handler changes
This should have been committed in a previous changeset
This should have been committed in a previous changeset
Rink Springer <rink@rink.nu> [Mon, 23 Jan 2012 08:56:08 +0100] rev 1332
kernel: Fix handling of stray IRQ's, these wouldn't correctly update the nested IRQ count
The result is a deadlock in Bochs, since it emulates stray IRQ #7's.
The result is a deadlock in Bochs, since it emulates stray IRQ #7's.
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 20:00:52 +0100] rev 1331
i386: Implement incrementing of the 'nested IRQ' per-CPU variable in IRQ handlers
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 19:54:14 +0100] rev 1330
kernel: Introduce a per-CPU 'nested IRQ' variable, which notes how deeply we are in IRQ handlers
This is necessary because interrupts may be nested, but only the final IRQ should trigger a reschedule action; otherwise, the original IRQ handler may not finish if the thread was suspended, as typically occurs during I/O.
This is necessary because interrupts may be nested, but only the final IRQ should trigger a reschedule action; otherwise, the original IRQ handler may not finish if the thread was suspended, as typically occurs during I/O.
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 19:34:44 +0100] rev 1329
kernel: Add a (mostly i386) gdb script which defines commands to inspect useful things
This makes it much easier to inspect threads and their contexts, among other things.
This makes it much easier to inspect threads and their contexts, among other things.
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 18:01:59 +0100] rev 1328
i386: Switch to the idle thread upon startup
The main reason is that this eliminates the 'curthread is NULL' case, which simplies the code. Another benefit is that we can use the idle thread's stack (which is larger than our bootstrap stack)
The main reason is that this eliminates the 'curthread is NULL' case, which simplies the code. Another benefit is that we can use the idle thread's stack (which is larger than our bootstrap stack)
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 18:00:23 +0100] rev 1327
kernel: Add a function to resolve an address to a symbol
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 17:59:38 +0100] rev 1326
kernel: Fix a dumb oversight in the ELF64 code
Rink Springer <rink@rink.nu> [Sun, 22 Jan 2012 17:59:17 +0100] rev 1325
kernel: Enable extra assertions in the scheduler code
These are on for now, at a performance hit - once the code has proved itself, they will be off by default.
These are on for now, at a performance hit - once the code has proved itself, they will be off by default.