fix: MMU竞态问题修复
背景:同一个进程的多个线程读写同一个PTE时,由于PTE无保护,存在竞态问题。 方案:新增spinlock保护PTE,包括大锁跟小锁。大锁:一个进程只有一个spinlock锁,多个线程 读写PTE时竞争一把锁,锁的内存占用小,但系统性能降低;小锁:每个页表持有一把spinlock, 由于锁是page结构体的一个字段,内存消耗较大,但是相对大锁性能较优。系统默认使用大锁,用 户可根据具体需要配置使用大锁还是小锁。 close #I2WARC Signed-off-by: Haryslee <lihao189@huawei.com> Change-Id: I5612eeac1f65507160035eae16af61f285182eda
This commit is contained in:
@@ -420,7 +420,7 @@ STATIC UINTPTR OsDoMmapFile(INT32 fd, UINTPTR addr, const LD_ELF_PHDR *elfPhdr,
|
||||
return mapAddr;
|
||||
}
|
||||
|
||||
INT32 OsGetKernelVaddr(const LosVmSpace *space, VADDR_T vaddr, VADDR_T *kvaddr)
|
||||
INT32 OsGetKernelVaddr(LosVmSpace *space, VADDR_T vaddr, VADDR_T *kvaddr)
|
||||
{
|
||||
INT32 ret;
|
||||
PADDR_T paddr = 0;
|
||||
|
||||
Reference in New Issue
Block a user