History log of /freebsd-10.0-release/sbin/ggate/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


241720 19-Oct-2012 ed

Fix warnings found by -Wmising-variable-declarations.

This self-written compiler warning, which is hopefully going to be
committed into LLVM sources soon, warns about potentially missing
`static' keywords, similar to -Wmissing-prototypes.

- bin/pax: Move external declaration of chdname and s_mask into extern.h.
- bin/setfacl: Move setfacl.c-specific stuff out of setfacl.h.
- sbin/mount_fusefs: Remove char *progname; use getprogname().
- others: add `static' where possible.


239106 06-Aug-2012 dim

Make sure the compiler knows g_gate_xvlog() and g_gate_xlog() do not
return. This silences a warning from clang 3.2 about uninitialized use
of the variable 'mediasize' in sbin/ggate/shared/ggate.c.

Reviewed by: pjd
MFC after: 1 week


220265 02-Apr-2011 pjd

Because ggatel(8) operates on local GEOM providers, use unlimited queue size in
GEOM GATE to fix the issue described in r220264. This also means that we no
longer need -q option, remove it. Don't bother to leaving it as a no-op, as
ggatel(8) is just an example utility.


204076 18-Feb-2010 pjd

Please welcome HAST - Highly Avalable Storage.

HAST allows to transparently store data on two physically separated machines
connected over the TCP/IP network. HAST works in Primary-Secondary
(Master-Backup, Master-Slave) configuration, which means that only one of the
cluster nodes can be active at any given time. Only Primary node is able to
handle I/O requests to HAST-managed devices. Currently HAST is limited to two
cluster nodes in total.

HAST operates on block level - it provides disk-like devices in /dev/hast/
directory for use by file systems and/or applications. Working on block level
makes it transparent for file systems and applications. There in no difference
between using HAST-provided device and raw disk, partition, etc. All of them
are just regular GEOM providers in FreeBSD.

For more information please consult hastd(8), hastctl(8) and hast.conf(5)
manual pages, as well as http://wiki.FreeBSD.org/HAST.

Sponsored by: FreeBSD Foundation
Sponsored by: OMCnet Internet Service GmbH
Sponsored by: TransIP BV


204075 18-Feb-2010 pjd

Style nits.


201145 28-Dec-2009 antoine

(S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument.
Fix some wrong usages.
Note: this does not affect generated binaries as this argument is not used.

PR: 137213
Submitted by: Eygene Ryabinkin (initial version)
MFC after: 1 month


198236 19-Oct-2009 ru

Switch the default WARNS level for sbin/ to 6.

Submitted by: Ulrich Spörlein


180020 26-Jun-2008 mtm

The signature for a pthread function requires that it
return a pointer to a void. The send_thread() and disk_thread()
funtions; however, do not have a return value because they run for
the duration of the daemon's lifetime. This causes gcc to barf when
running with -O3. Make these functions return a null pointer to quiet it.

PR: bin/124342
Submitted by: Garrett Cooper <gcooper@FreeBSD.org> (minus his comments)
MFC after: 1 week


179900 20-Jun-2008 gonzo

Fix spelling

PR: kern/124723
Event: Bugathon#5


177714 29-Mar-2008 ru

Remove options MK_LIBKSE and DEFAULT_THREAD_LIB now that we no longer
build libkse. This should fix WITHOUT_LIBTHR builds as a side effect.


172500 09-Oct-2007 obrien

Tweak the handling of "WITHOUT_LIBPTHREAD". Also remove the accidental
treatment of 'LIBKSE' as an "old style" knob.

Submitted by: ru
Approved by: re(kensmith)


172491 09-Oct-2007 obrien

Repo copy libpthreads to libkse.
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by: re(kensmith)


172403 01-Oct-2007 ru

Always install libpthread.* symlinks if at least one of
the threading libraries is built. This simplifies the
logic in makefiles that need to check if the pthreads
support is present. It also fixes a bug where we would
build a threading library that we shouldn't have built:
for example, building with WITHOUT_LIBTHR and the default
value of DEFAULT_THREADING_LIB (libthr) would mistakenly
build the libthr library, but not install it.

Approved by: re (kensmith)


168422 06-Apr-2007 pjd

Implement a work-around for poor ggate write performance.


165327 18-Dec-2006 pjd

For consistency use 'unsigned' instead of 'u_int'.


165251 15-Dec-2006 pjd

Fix ggated for platforms with 64bit size_t. The DIOCGSECTORSIZE ioctl
returns u_int.

Reported by: Javier Martín Rueda <jmrueda@diatel.upm.es>
PR: amd64/91799
MFC after: 3 days


164616 26-Nov-2006 ru

- When building world WITHOUT_LIBPTHREAD, link libthr to libpthread.
- Don't build ngctl(8) and cached(8) if threading libs aren't built.
- Fix various issues in a cached(8) makefile.


163804 30-Oct-2006 pjd

- Handle timeouts from recv(2) properly.
- Increase timeout to 8 seconds (should be made configurable).

Reported by: Ulrich Spoerlein <uspoerlein@gmail.com>
Reported by: Christian Laursen <xi@borderworlds.dk>
PR: kern/104829
MFC after: 1 week


162395 18-Sep-2006 ru

Markup fixes.


161526 22-Aug-2006 ru

Remove alpha left-overs.


159480 10-Jun-2006 trhodes

Fix a typo s/Made/Make. Use .Pp for a line break, it will quiet the
mdoc(7) warning.


157696 12-Apr-2006 ru

libc_r is no longer provided, and on alpha and sparc64, libthr
is (sym)linked to libpthread. Account for this change and
check for MK_LIBTHR instead of MK_LIBC_R where appropriate.


156944 21-Mar-2006 ru

Unbreak WITHOUT_LIBPHREAD/WITHOUT_LIBC_R option support, depending
on platform.


156813 17-Mar-2006 ru

Reimplementation of world/kernel build options. For details, see:

http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)


156590 12-Mar-2006 pjd

Flush stdout after printing name of created device, so it can be properly
read when 'ggatec create' is used in backticks or its output is piped to
another command.

Submitted by: Paul Schenkeveld
MFC after: 3 days


152568 18-Nov-2005 ru

-mdoc sweep.


148511 29-Jul-2005 pjd

Update manual page after ggate rewrite.

MFC after: 1 day


147885 10-Jul-2005 pjd

Don't compile ggatec/ggated in NO_LIBPTHREAD case.

Reported by: Andrea Campi <andrea+freebsd_cvs_all@webcom.it>
Approved by: re (scottl)


147845 08-Jul-2005 pjd

Sync which ggate changes.

Approved by: re (scottl)


147844 08-Jul-2005 pjd

Reimplement ggatec/ggated applications.

Change communication protocol to be much more resistant on network
problems and to allow for much better performance.

Better performance is achieved by creating two connections between
ggatec and ggated one for sending the data and one for receiving it.
Every connection is handled by separeted thread, so there is no more
synchronous data flow (send and wait for response), now one threads
sends all requests and another receives the data.

Use two threads in ggatec(8):
- sendtd, which takes I/O requests from the kernel and sends them to the
ggated daemon on the other end;
- recvtd, which waits for ggated responses and forwards them to the kernel.

Use three threads in ggated(8):
- recvtd, which waits for I/O requests and puts them onto incoming queue;
- disktd, which takes requests from the incoming queue, does disk operations
and puts finished requests onto outgoing queue;
- sendtd, which takes finished requests from the outgoing queue and sends
responses back to ggatec.

Because there were major changes in communication protocol, there is no
backward compatibility, from now on, both client and server has to run
on 5.x or 6.x (or at least ggated should be from the same FreeBSD version
on which ggatec is running).

For Gbit networks some buffers need to be increased. I use those settings:
kern.ipc.maxsockbuf=16777216
net.inet.tcp.sendspace=8388608
net.inet.tcp.recvspace=8388608
and I use '-S 4194304 -R 4194304' options for both, ggatec and ggated.

Approved by: re (scottl)


145795 02-May-2005 delphij

include stdarg.h for va_list


140415 18-Jan-2005 ru

Sort sections.


140368 17-Jan-2005 ru

Added the EXIT STATUS section where appropriate.


136059 02-Oct-2004 pjd

Fix a deadlock in ggatel(8) simlar to one which was fixed some time
ago in md(4).

Submitted by: Ivan Voras <ivoras@fer.hr>


134937 08-Sep-2004 pjd

Fix/clean up return values checking.


130837 21-Jun-2004 pjd

Print mediasize in human readable form as well.


130014 02-Jun-2004 pjd

Remove extra semicolon.

Inspired by: fjoe


129576 22-May-2004 pjd

style.Makefile(5).


129511 20-May-2004 pjd

Various style.Makefile(5) improvements.

Provoked by: ru


129149 12-May-2004 ru

Polish the mdoc(7) markup.


128912 04-May-2004 bde

Include <sys/time.h> for the declaration of struct bintime instead of
depending on namespace pollution in <sys/stat.h>. struct bintime is
only needed to satisfy leakage of kernel interfaces to userland and
namespace bugs in those interfaces...


128895 03-May-2004 pjd

Add missing command.


128894 03-May-2004 pjd

Add missing commands.


128882 03-May-2004 pjd

Don't repeat handshake.

This little thing can cause a deadlock, because taste mechanism start
to work after creation of ggate provider and I/O requests are sent from
other classes from the g_event thread, so number of pending events isn't 0.
Now ggatec(8) start second handshake and ggated(8) is trying to open
GEOM provider (for example md(4)) and it can't, because it hangs on
g_waitidle() in g_dev_open(). g_waitidle() cannot finish because
there is a pending read on event queue, and this read can't be
finished, because ggated(8) can't open target device.
GEOM Gate will recover from this deadlock, because requests will
timeout, but it of course isn't the best solution and I don't know
better one for now, so we should avoid opening GEOM providers while
there are pending requests in event queue.


128862 03-May-2004 pjd

Paths correction.

Pointed out by: ache, make buildworld


128836 02-May-2004 pjd

Fix compiling on 64-bit architectures.


128766 30-Apr-2004 pjd

GEOM Gate network daemon.


128765 30-Apr-2004 pjd

GEOM Gate network client and control utility.


128764 30-Apr-2004 pjd

GEOM Gate local control utility.


128763 30-Apr-2004 pjd

Stuff shared between ggate utilities.


128762 30-Apr-2004 pjd

Makefile for building ggate utilities: ggatel(8), ggatec(8), ggated(8).