Kernel: Cleanup and fix page tables and better TLB shootdown
This commit is contained in:
@@ -377,8 +377,7 @@ namespace Kernel
|
||||
case SMPMessage::Type::FlushTLB:
|
||||
if (message->flush_tlb.page_table && message->flush_tlb.page_table != processor.m_current_page_table)
|
||||
break;
|
||||
for (size_t i = 0; i < message->flush_tlb.page_count; i++)
|
||||
asm volatile("invlpg (%0)" :: "r"(message->flush_tlb.vaddr + i * PAGE_SIZE) : "memory");
|
||||
PageTable::current().invalidate_range(message->flush_tlb.vaddr, message->flush_tlb.page_count, false);
|
||||
break;
|
||||
case SMPMessage::Type::NewThread:
|
||||
processor.m_scheduler->add_thread(message->new_thread);
|
||||
|
||||
Reference in New Issue
Block a user