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. Drewhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17508.62183.562795.176709>
