Compare commits

...

3 Commits

6 changed files with 22 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
target_compile_options(${kernel_exe_name} PRIVATE
-z max-page-size=0x1000 -m64 -mcmodel=large -mno-red-zone -mno-mmx
-mno-sse -mno-sse2 -D_64BIT -DBYTE_ORDER=1234)
target_link_libraries(${kernel_exe_name} "-z max-page-size=0x1000" "-T ${CMAKE_CURRENT_SOURCE_DIR}/arch/x86_64/layout.ld")
target_link_libraries(${kernel_exe_name} "-static -z max-page-size=0x1000" "-T ${CMAKE_CURRENT_SOURCE_DIR}/arch/x86_64/layout.ld")

View File

@@ -330,11 +330,11 @@ void task_exit(int status)
task_unlock(self);
handle_table_destroy(handles);
printk("thread %s[%u.%u] killed",
tracek("thread %s[%u.%u] killed",
self->t_name,
self->t_id,
cur_thread->tr_id);
printk("task %s[%u] killed (%u, %u)",
tracek("task %s[%u] killed (%u, %u)",
self->t_name,
self->t_id,
self->t_base.ob_refcount,

View File

@@ -148,7 +148,7 @@ void thread_exit(void)
thread_lock_irqsave(self, &flags);
self->tr_state = THREAD_STOPPED;
object_assert_signal(&self->tr_base, THREAD_SIGNAL_STOPPED);
printk("thread %s[%u.%u] exited",
tracek("thread %s[%u.%u] exited",
self->tr_parent->t_name,
self->tr_parent->t_id,
self->tr_id);
@@ -184,7 +184,7 @@ void thread_kill(struct thread *thread)
}
object_assert_signal(&thread->tr_base, THREAD_SIGNAL_STOPPED);
printk("thread %s[%u.%u] killed",
tracek("thread %s[%u.%u] killed",
thread->tr_parent->t_name,
thread->tr_parent->t_id,
thread->tr_id);

View File

@@ -8,8 +8,10 @@
extern kern_status_t sys_task_exit(int status)
{
#if defined(TRACE)
struct task *self = current_task();
printk("%s[%d]: task_exit(%d)", self->t_name, self->t_id, status);
#endif
task_exit(status);
return KERN_FATAL_ERROR;
}

View File

@@ -4,6 +4,8 @@
#include <kernel/object.h>
#include <kernel/panic.h>
#include <kernel/printk.h>
#include <kernel/sched.h>
#include <kernel/task.h>
#include <kernel/util.h>
#include <kernel/vm-object.h>
#include <mango/status.h>
@@ -1297,7 +1299,14 @@ kern_status_t address_space_demand_map(
object_offset,
VMO_ALLOCATE_MISSING_PAGE,
NULL);
// tracek("vm: mapping %07llx -> %10llx", vm_page_get_paddr(pg), addr);
#if 0
struct task *self = current_task();
printk("vm: %s[%d] mapping %07llx -> %10llx",
self->t_name,
self->t_id,
vm_page_get_paddr(pg),
addr);
#endif
if (!pg) {
return KERN_FATAL_ERROR;

View File

@@ -281,10 +281,12 @@ static struct vm_page *alloc_page(struct vm_object *vo, off_t offset)
void *page_buf = vm_page_get_vaddr(page);
memset(page_buf, 0x0, vm_page_get_size_bytes(page));
tracek("vm-object: [%s] alloc offset %zx -> page %zx",
#if 0
printk("vm-object: [%s] alloc offset %zx -> page %zx",
vo->vo_name,
offset,
vm_page_get_paddr(page));
#endif
page->p_vmo_offset = offset;
vo->vo_pages.b_root = &page->p_bnode;
btree_insert_fixup(&vo->vo_pages, &page->p_bnode);
@@ -392,6 +394,7 @@ struct vm_page *vm_object_get_page(
enum vm_object_flags flags,
unsigned long *irq_flags)
{
offset &= ~VM_PAGE_MASK;
if (!vo->vo_ctrl && (flags & VMO_ALLOCATE_MISSING_PAGE)) {
return alloc_page(vo, offset);
}