Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Dec 2014 19:08:29 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        "Simon J. Gerraty" <sjg@juniper.net>
Cc:        Marcel Moolenaar <marcel@freebsd.org>, Phil Shafer <phil@juniper.net>, John-Mark Gurney <jmg@funkthat.com>, Alfred Perlstein <alfred@freebsd.org>, "arch@freebsd.org" <arch@freebsd.org>, Poul-Henning Kamp <phk@phk.freebsd.dk>, freebsd-arch <freebsd-arch@freebsd.org>, Konstantin Belousov <kostikbel@gmail.com>
Subject:   Re: Libxo bugs and fixes.
Message-ID:  <549F742D.3000802@mu.org>
In-Reply-To: <23687.1419546234@chaos>
References:  <201408141640.s7EGe422096656@idle.juniper.net> <53ED57F2.5020808@mu.org> <20140815053604.9E40B580A2@chaos.jnpr.net> <53EDB0EF.6090902@mu.org> <20140815173830.93832580A2@chaos.jnpr.net> <53EEA74B.9070107@mu.org> <20140816045254.5F47E580A2@chaos.jnpr.net> <549BA675.9070107@freebsd.org> <29784.1419492726@chaos> <26E73A9E-6EA4-4698-885D-BD91906D32D2@mu.org> <18276.1419528679@chaos> <549C50FB.6050908@mu.org> <23687.1419546234@chaos>

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

On 12/25/14 2:23 PM, Simon J. Gerraty wrote:
> Alfred Perlstein <bright@mu.org> wrote:
>> I don't think my patch adds an xo_flush to xo_emit...  ?
> No, you added a test around it - I only looked at the RHS.
>
OK, so I've updated https://reviews.freebsd.org/D1379 to include code to 
handle this.

Solaris and glibc have a private libc function to check if a stream is 
line buffered called int __flbf (FILE *stream) which returns true/false 
if the stream if line buffered or not.

We can use this in libxo now.

This should avoid the superfluous flushes.

One other topic, I talked to some webdevs and they suggested that we 
have a "jsonLD" which stands for "json line delimited" that would be 
useful for periodic output.  This would be halfway between a "pretty 
format" and a compact stream format.  meaning that each line would be a 
record, example:

Currently:
/usr/src/contrib/libxo/libxo % netstat --libxo json,pretty 1
{
   "statistics": {
     "interface-statistics": [
       {
         "received-packets": 2,
         "received-errors": 0,
         "dropped-packets": 0,
         "received-bytes": 132,
         "sent-packets": 4,
         "send-errors": 0,
         "sent-bytes": 1080,
         "collisions": 0
       },
       {
         "received-packets": 2,
         "received-errors": 0,
         "dropped-packets": 0,
         "received-bytes": 132,
         "sent-packets": 6,
         "send-errors": 0,
         "sent-bytes": 1964,
         "collisions": 0
       },
       {
         "received-packets": 1,
         "received-errors": 0,
         "dropped-packets": 0,
         "received-bytes": 66,
         "sent-packets": 4,
         "send-errors": 0,
         "sent-bytes": 1048,
         "collisions": 0


Later we might want to support something like this:
/usr/src/contrib/libxo/libxo % netstat --libxo json,ld 1
{
   "statistics": {
     "interface-statistics": [
       {        "received-packets": 2,        "received-errors": 
0,        "dropped-packets": 0,        "received-bytes": 132, 
"sent-packets": 4,        "send-errors": 0,        "sent-bytes": 
1080,        "collisions": 0      },
       { "received-packets": 2, "received-errors": 0, "dropped-packets": 
0,        "received-bytes": 132, "sent-packets": 6,        
"send-errors": 0,        "sent-bytes": 1964,        "collisions": 0      },
       {        "received-packets": 1,        "received-errors": 
0,        "dropped-packets": 0,        "received-bytes": 66, 
"sent-packets": 4,        "send-errors": 0,        "sent-bytes": 
1048,        "collisions": 0 }

Let me know what you think.

-Alfred




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