Using message passing instead of shared memory can solve the problem.
http://docs.google.com/present/view?id=dc3nqpnt_19hsg376hs
try to explain slide 21,
Broadcast vs Multicast:
TLB shootdown – the process of maintaining TLB consistency
by invalidating entries when pages are unmapped
– is one of the simplest operations in a multiprocessor
OS that requires global coordination. It is also
a short, but latency-critical, operation and so represents
a worst-case comparison for a multikernel.
a short, but latency-critical, operation and so represents
a worst-case comparison for a multikernel.
Broadcast performs badly due to the cache-coherence protocol used
by AMD64 processors. When the master updates the line, it is invalidated
in all other caches. Each slave core then pulls the new copy from the master’s
cache.
by AMD64 processors. When the master updates the line, it is invalidated
in all other caches. Each slave core then pulls the new copy from the master’s
cache.
which forwards it to the other three cores in the package.
Since they all share an L3 cache, this second message is much cheaper.
Since they all share an L3 cache, this second message is much cheaper.
IP Loopback
Table 4 shows that Barrelfish achieves higher throughput,fewer cache misses, and lower interconnect utilization,
particularly in the reverse direction from sink to
source. This occurs because sending packets as URPC
messages avoids any shared-memory other than the
URPC channel and packet payload; conversely, Linux
causes more cache-coherence traffic for shared-memory
synchronization.
Barrelfish also benefits by avoiding kernel crossings.
No comments:
Post a Comment