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>

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


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


home | help

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