diff options
| author | Robert Morris <rtm@csail.mit.edu> | 2022-08-24 13:24:24 -0400 | 
|---|---|---|
| committer | Robert Morris <rtm@csail.mit.edu> | 2022-08-24 13:24:24 -0400 | 
| commit | 9c1b8a4eb085d7c639c2039fc14beba83d95653e (patch) | |
| tree | c278acf9ced36ffd58dcb27aac5a6ef2457d7a1e | |
| parent | 96047832c62e6a172c92f9ead6715b553d4c2271 (diff) | |
| download | xv6-labs-9c1b8a4eb085d7c639c2039fc14beba83d95653e.tar.gz xv6-labs-9c1b8a4eb085d7c639c2039fc14beba83d95653e.tar.bz2 xv6-labs-9c1b8a4eb085d7c639c2039fc14beba83d95653e.zip  | |
sfence before writing satp, as well as after
| -rw-r--r-- | kernel/fs.c | 2 | ||||
| -rw-r--r-- | kernel/trampoline.S | 2 | ||||
| -rw-r--r-- | user/grind.c | 5 | 
3 files changed, 6 insertions, 3 deletions
diff --git a/kernel/fs.c b/kernel/fs.c index dea5864..c6bab15 100644 --- a/kernel/fs.c +++ b/kernel/fs.c @@ -194,7 +194,7 @@ static struct inode* iget(uint dev, uint inum);  // Allocate an inode on device dev.  // Mark it as allocated by  giving it type type.  // Returns an unlocked but allocated and referenced inode, -// or NULL if there is no free inode.. +// or NULL if there is no free inode.  struct inode*  ialloc(uint dev, short type)  { diff --git a/kernel/trampoline.S b/kernel/trampoline.S index 0aaa413..7fb0b36 100644 --- a/kernel/trampoline.S +++ b/kernel/trampoline.S @@ -82,6 +82,7 @@ uservec:          # load the kernel page table, from p->trapframe->kernel_satp          ld t1, 0(a0) +        sfence.vma zero, zero          csrw satp, t1          sfence.vma zero, zero @@ -96,6 +97,7 @@ userret:          # a0: user page table, for satp.          # switch to the user page table. +        sfence.vma zero, zero          csrw satp, a0          sfence.vma zero, zero diff --git a/user/grind.c b/user/grind.c index 5cd89f4..431ed19 100644 --- a/user/grind.c +++ b/user/grind.c @@ -305,7 +305,7 @@ iter()      exit(1);    }    if(pid1 == 0){ -    rand_next = 31; +    rand_next ^= 31;      go(0);      exit(0);    } @@ -316,7 +316,7 @@ iter()      exit(1);    }    if(pid2 == 0){ -    rand_next = 7177; +    rand_next ^= 7177;      go(1);      exit(0);    } @@ -346,5 +346,6 @@ main()        wait(0);      }      sleep(20); +    rand_next += 1;    }  }  | 
