Check out the new USENIX Web site. next up previous
Next: Impact on Data Transfer Up: Performance evaluation Previous: Platform

Impact on Communication Setup

The VMMC communication is set up via export and import calls. A process can export the read and/or write rights on its virtual memory buffer. Another process on a different or the same machine can gain the access rights through an import operation; afterwards, it can then directly read from or write to this buffer. The export-import semantics provides the protection in VMMC. Export is implemented inside the device driver and invoked through the ioctl mechanism. Table 1 lists the cost of kernel entry and exit using the ioctl mechanism.

   table336
Table 1: Overhead of kernel entry and exit (ioctl calls)

The export call pins the exported buffer in physical memory. In current implementation, exported pages are never unpinned. The cost of pinning a user buffer is listed in Table 2. On NT, exporting a one-page buffer takes 43  tex2html_wrap_inline852 s of which 18.3  tex2html_wrap_inline852 s is OS specific (ioctl call + pinning a page) while importing a memory buffer costs 68  tex2html_wrap_inline852 s none of which involves the OS.

In most of our applications, the connection setup occurs only at the beginning. For client-server applications that use sockets, the connection setup happens each time a socket is opened. In both cases, the setup cost accounts for a small fraction of the execution time. The small difference in the setup performance on the two platforms should have little impact on the applications' performance.

 

  table351


Table 2: Overhead of pinning and unpinning pages in memory (excluding ioctl overhead).



Yuqun (Michael) Chen
Wed Jun 2 19:35:36 EDT 1999