Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 May 2006 16:41:11 -0400 (EDT)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        Daniel Eischen <deischen@freebsd.org>
Cc:        David Xu <davidxu@freebsd.org>, current@freebsd.org
Subject:   Re: Fine-grained locking for POSIX local sockets (UNIX domain sockets)
Message-ID:  <17508.62183.562795.176709@grasshopper.cs.duke.edu>
In-Reply-To: <Pine.GSO.4.64.0605092346340.21472@sea.ntplx.net>
References:  <20060506150622.C17611@fledge.watson.org> <20060509181302.GD3636@eucla.lemis.com> <20060509182330.GB92714@xor.obsecurity.org> <200605100726.28243.davidxu@freebsd.org> <44613469.2050000@freebsd.org> <4461522D.9060405@freebsd.org> <Pine.GSO.4.64.0605092346340.21472@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help

Daniel Eischen writes:
 > On Wed, 10 May 2006, David Xu wrote:
 > > One of the problems to implement it is that atomic operations,
 > > if there are multiple integer needs to be updated by kernel,
 > > userland maybe gets an inconsistent result, the way to avoid the
 > > problem is using two generation numbers.
 > >
 > > http://gsu.linux.org.tr/~mpekmezci/kernelapi/unitedlinux/arch/x86_64/kernel/vsyscall.c.html
 > > check do_vgettimeofday(struct timeval * tv):
 > >
 > > Another problem is how you tell userland the address of the kernel
 > > page ? do you use fixed address or tell it via program headers like
 > > the PT_TLS set by kernel, check /usr/src/lib/libc/gen/tls.c.
 > 
 > Can you not make a simple pseudo device driver and mmap the page?

In addition to this linux vsyscall, there is the MacOSX/Darwin
commpage.  The map machine-specific implementations of atomic
operations, bcopy, bzero, spinlocks, pthread_getspecific, etc into a
common page mapped into userspace applications. The also do a (mostly)
syscall-free gettimeoday this way.

See http://fxr.watson.org/fxr/source/osfmk/ppc/commpage/?v=xnu-792

Obviously, we could not take the code due to APSL infection (unless
Apple were to donate it), but it is something else to look at.

Drew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17508.62183.562795.176709>