[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PATCH: Fix gsync module for remote tasks
From: |
Agustina Arzille |
Subject: |
PATCH: Fix gsync module for remote tasks |
Date: |
Wed, 18 Jan 2017 16:48:24 -0300 |
Hello, everyone.
Here's a patch that fixes gsync so that it doesn't panic when used by
remote tasks.
Noteworthy changes:
- The type 'gsync_key' has been made into a union of several types in
order to clearly denote what kind of address is being used.
- Sleeping locks are now being used to serialize access to gsync's
buckets.
The implementation can be found in the files kern/kmutex.{h,c}
Note that it's a basic mutex; it doesn't support readers and writers
separatedly (it's fully interruptible, though).
- The base function 'thread_wakeup_prim' was slightly modified so that
it returns a boolean value, indicating whether any thread was
scheduled
to run or not. Callers are free to ignore its return value.
- An utility macro was added so that the reference count for VM objects
can be incremented while holding the interlock.
- Most importantly, the gsync module has been reworked so that it now
works
with remote tasks, creating temporary mappings in the kernel's map for
such special cases.
gsync.diff
Description: Text Data
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- PATCH: Fix gsync module for remote tasks,
Agustina Arzille <=