multikernel icon indicating copy to clipboard operation
multikernel copied to clipboard

[mm] Unsafe Virtual Memory in MPPA-256

Open ppenna opened this issue 4 years ago • 0 comments

Description

In MPPA-256 TLB shootdown is currently supported (https://github.com/nanvix/hal/issues/578).

As a consequence of this limitation, we can not guarantee the correct semantics for a multithread application that works on the remote memory. For instance, consider the following example:

  • Thread A allocates a chunk of memory M1
  • Thread A and B read/write to M1
  • Thread A tries to access some page in M1 that is not in the page cache
  • A page fault exception is triggered and the page cache daemon runs
  • The page cache dameon finds out that the page cache is full and evicts one page to remote memory
  • The target page is fetched and the TLB of thread A is updated acordingly
  • Thread B has an outdated TLB, thus it writes to unsafe memory addresses

Related Isues

  • https://github.com/nanvix/hal/issues/578

ppenna avatar Jun 30 '20 19:06 ppenna