Bring mountctl up-to-date with memory fifo statistics structural changes.
authorMatthew Dillon <dillon@dragonflybsd.org>
Wed, 6 Jul 2005 06:04:32 +0000 (06:04 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Wed, 6 Jul 2005 06:04:32 +0000 (06:04 +0000)
Implement the two-way protocol option.

sbin/mountctl/mountctl.8
sbin/mountctl/mountctl.c

index 735707e..98537a8 100644 (file)
@@ -31,7 +31,7 @@
 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $DragonFly: src/sbin/mountctl/mountctl.8,v 1.3 2005/03/08 20:29:55 swildner Exp $
+.\" $DragonFly: src/sbin/mountctl/mountctl.8,v 1.4 2005/07/06 06:04:32 dillon Exp $
 .\"
 .Dd January 8, 2005
 .Dt MOUNTCTL 8
@@ -45,6 +45,7 @@
 .Op Ar tag/mountpt | mountpt:tag
 .Nm
 .Fl a
+.Op Fl 2
 .Op Fl w Ar output_path
 .Op Fl x Ar filedesc
 .Op Fl o Ar option
@@ -104,6 +105,11 @@ will modify the options associated with an existing journal.  Options are
 specified in the OPTION KEYWORDS section.
 .Sh OTHER OPTIONS
 .Bl -tag -width indent
+.It Fl 2
+Specify full-duplex operation.  The kernel will not throw away journal
+data in its internal FIFO until the transaction id is acknowlwedged.  This
+requires a full-duplex journaling descriptor.  Note that shell pipes are
+full-duplex-capable.
 .It Fl F
 Flush a journal, equivalent to the 'flush' keyword.
 This option implies
@@ -166,7 +172,9 @@ the journal backwards as well as forwards to 'undo' operations.  This is the
 default.
 .It Ar twoway
 Indicate that the journaling stream is a two-way stream and that transaction
-id acknowledgements will be returned.
+id acknowledgements will be returned.  This option is the same as the
+.Fl 2
+option.
 .It Ar memfifo=size[k,m]
 Specify the size of the in-kernel memory FIFO used to buffer the journaling
 stream between processes doing filesystem operations and the worker thread
@@ -219,6 +227,7 @@ time the flush was issued.
 .Sh FILES
 .Sh SEE ALSO
 .Xr mount 2 ,
+.Xr jscan 8
 .Sh BUGS
 .Sh CAVEATS
 This utility is currently under construction and not all features have been
index 74629b3..b797539 100644 (file)
@@ -31,7 +31,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  * 
- * $DragonFly: src/sbin/mountctl/mountctl.c,v 1.4 2005/03/22 21:42:39 dillon Exp $
+ * $DragonFly: src/sbin/mountctl/mountctl.c,v 1.5 2005/07/06 06:04:32 dillon Exp $
  */
 /*
  * This utility implements the userland mountctl command which is used to
@@ -97,8 +97,11 @@ main(int ac, char **av)
     const char *mountpt = NULL;
     char *tmp;
 
-    while ((ch = getopt(ac, av, "adflo:mw:x:ACFSZ")) != -1) {
+    while ((ch = getopt(ac, av, "2adflo:mw:x:ACFSZ")) != -1) {
        switch(ch) {
+       case '2':
+           twoway_opt = 1;
+           break;
        case 'a':
            aopt = 1;
            if (aopt + dopt + lopt + mopt != 1) {
@@ -433,8 +436,9 @@ mountctl_list(const char *keyword, const char *mountpt, int __unused fd, void *i
     printf("%s:%s\n", mountpt, rstat->id[0] ? rstat->id : "<NOID>");
     printf("    membufsize=%s\n", numtostr(rstat->membufsize));
     printf("    membufused=%s\n", numtostr(rstat->membufused));
-    printf("    membufiopend=%s\n", numtostr(rstat->membufiopend));
+    printf("    membufunacked=%s\n", numtostr(rstat->membufunacked));
     printf("    total_bytes=%s\n", numtostr(rstat->bytessent));
+    printf("    fifo_stalls=%lld\n", rstat->fifostalls);
 }
 
 static void
@@ -467,6 +471,10 @@ mountctl_add(const char *keyword, const char *mountpt, int fd)
     snprintf(joinfo.id, sizeof(joinfo.id), "%s", keyword);
     if (memfifo_opt > 0)
        joinfo.membufsize = memfifo_opt;
+    if (twoway_opt > 0)
+       joinfo.flags |= MC_JOURNAL_WANT_FULLDUPLEX;
+    if (reversable_opt > 0)
+       joinfo.flags |= MC_JOURNAL_WANT_REVERSABLE;
 
     error = mountctl(mountpt, MOUNTCTL_INSTALL_VFS_JOURNAL, fd,
                        &joinfo, sizeof(joinfo), NULL, 0);