Commit Graph

25 Commits

Author SHA1 Message Date
pjd
1e2d73f443 Update manual page after ggate rewrite.
MFC after:	1 day
2005-07-29 11:22:13 +00:00
pjd
4e01341785 Don't compile ggatec/ggated in NO_LIBPTHREAD case.
Reported by:	Andrea Campi <andrea+freebsd_cvs_all@webcom.it>
Approved by:	re (scottl)
2005-07-10 15:16:49 +00:00
pjd
4c097d4765 Sync which ggate changes.
Approved by:	re (scottl)
2005-07-08 21:29:17 +00:00
pjd
48406acfaf 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)
2005-07-08 21:28:26 +00:00
delphij
6b13894421 include stdarg.h for va_list 2005-05-02 10:04:16 +00:00
ru
13fe9ea5a2 Sort sections. 2005-01-18 10:09:38 +00:00
ru
6cc4b6c220 Added the EXIT STATUS section where appropriate. 2005-01-17 07:44:44 +00:00
pjd
631ed342dc 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>
2004-10-02 16:58:33 +00:00
pjd
456c69d927 Fix/clean up return values checking. 2004-09-08 07:57:14 +00:00
pjd
df25a03253 Print mediasize in human readable form as well. 2004-06-21 09:20:06 +00:00
pjd
f53d93d179 Remove extra semicolon.
Inspired by:	fjoe
2004-06-02 21:21:10 +00:00
pjd
8ed5f6a137 style.Makefile(5). 2004-05-22 10:33:18 +00:00
pjd
ad72c978da Various style.Makefile(5) improvements.
Provoked by:	ru
2004-05-20 20:05:05 +00:00
ru
ddc2fcfc4f Polish the mdoc(7) markup. 2004-05-12 07:34:05 +00:00
bde
fff477ffd4 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...
2004-05-04 07:08:04 +00:00
pjd
8e85a8db26 Add missing command. 2004-05-03 21:31:19 +00:00
pjd
c1a10eac03 Add missing commands. 2004-05-03 21:29:22 +00:00
pjd
9a8678bb77 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.
2004-05-03 18:24:41 +00:00
pjd
ffd473d54b Paths correction.
Pointed out by:	ache, make buildworld
2004-05-03 07:21:59 +00:00
pjd
1867695ee6 Fix compiling on 64-bit architectures. 2004-05-02 17:59:49 +00:00
pjd
71ff258eed GEOM Gate network daemon. 2004-04-30 16:19:50 +00:00
pjd
68969eb22f GEOM Gate network client and control utility. 2004-04-30 16:18:01 +00:00
pjd
bbe94a6e43 GEOM Gate local control utility. 2004-04-30 16:15:13 +00:00
pjd
b0399e5dba Stuff shared between ggate utilities. 2004-04-30 16:13:45 +00:00
pjd
dbf20e6f7f Makefile for building ggate utilities: ggatel(8), ggatec(8), ggated(8). 2004-04-30 16:12:20 +00:00