<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/features/changelog, branch v4.1dev</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>core: fix some of the dict_{get,set} with proper APIs</title>
<updated>2018-01-17T00:00:11+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amarts@redhat.com</email>
</author>
<published>2018-01-05T08:21:18+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=9404b0de3fd8ab5adc3a531d4cb37b56e1e3908f'/>
<id>9404b0de3fd8ab5adc3a531d4cb37b56e1e3908f</id>
<content type='text'>
updates #220

Change-Id: I6e25dbb69b2c7021e00073e8f025d212db7de0be
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
updates #220

Change-Id: I6e25dbb69b2c7021e00073e8f025d212db7de0be
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fips: Replace md5sum usage to enable fips support</title>
<updated>2017-12-19T14:39:04+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2017-12-19T05:05:05+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=5aca4cf569f19d235662c4fbaa04df21e5fd46c2'/>
<id>5aca4cf569f19d235662c4fbaa04df21e5fd46c2</id>
<content type='text'>
md5sum is not fips compliant. Using xxhash64 instead of
md5sum for socket file generation in glusterd and
changelog to enable fips support.

NOTE: md5sum is 128 bit hash. xxhash used is 64 bit.

Updates: #230
Change-Id: I1bf2ea05905b9151cd29fa951f903685ab0dc84c
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
md5sum is not fips compliant. Using xxhash64 instead of
md5sum for socket file generation in glusterd and
changelog to enable fips support.

NOTE: md5sum is 128 bit hash. xxhash used is 64 bit.

Updates: #230
Change-Id: I1bf2ea05905b9151cd29fa951f903685ab0dc84c
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>all: Simplify component message id's definition</title>
<updated>2017-12-14T02:33:51+00:00</updated>
<author>
<name>Xavier Hernandez</name>
<email>jahernan@redhat.com</email>
</author>
<published>2017-12-12T21:31:53+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=415e0bcc80b350fc75f325b490560f44ba419b20'/>
<id>415e0bcc80b350fc75f325b490560f44ba419b20</id>
<content type='text'>
This patch creates a new way of defining message id's that is easier
and less error prone because it doesn't require so many manual changes
each time a new component is defined or a new message created.

Change-Id: I71ba8af9ac068f5add7e74f316a2478bc991c67b
Signed-off-by: Xavier Hernandez &lt;jahernan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch creates a new way of defining message id's that is easier
and less error prone because it doesn't require so many manual changes
each time a new component is defined or a new message created.

Change-Id: I71ba8af9ac068f5add7e74f316a2478bc991c67b
Signed-off-by: Xavier Hernandez &lt;jahernan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/changelog: changelog threads are not cleaned properly after receive GF_EVENT_CLEANUP</title>
<updated>2017-12-13T13:24:44+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawa@redhat.com</email>
</author>
<published>2017-12-12T07:46:52+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=8b8fea1a801f837a75307f4cd8e79e808760cb0b'/>
<id>8b8fea1a801f837a75307f4cd8e79e808760cb0b</id>
<content type='text'>
Problem: changelog threads are not cleaned properly after receive
         GF_EVENT_CLEANUP while brick mux is enabled

Solution: change changelog notify code path to cleanup threads
          properly

BUG: 1524816
Change-Id: I007f4e14e3d557707df738faf222b78c793d5ab5
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: changelog threads are not cleaned properly after receive
         GF_EVENT_CLEANUP while brick mux is enabled

Solution: change changelog notify code path to cleanup threads
          properly

BUG: 1524816
Change-Id: I007f4e14e3d557707df738faf222b78c793d5ab5
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterfs: Use gcc builtin ATOMIC operator to increase/decreate refcount.</title>
<updated>2017-12-12T09:05:56+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawa@redhat.com</email>
</author>
<published>2017-10-20T07:09:29+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=430484c92ab5a6234958d1143e0bb14aeb0cd1c0'/>
<id>430484c92ab5a6234958d1143e0bb14aeb0cd1c0</id>
<content type='text'>
Problem: In glusterfs code base we call mutex_lock/unlock to take
         reference/dereference for a object.Sometime it could be
         reason for lock contention also.

Solution: There is no need to use mutex to increase/decrease ref
          counter, instead of using mutex use gcc builtin ATOMIC
          operation.

Test:   I have not observed yet how much performance gain after apply
        this patch specific to glusterfs but i have tested same
        with below small program(mutex and atomic both) and
        get good difference.

static int numOuterLoops;
static void *
threadFunc(void *arg)
{
    int j;

    for (j = 0; j &lt; numOuterLoops; j++) {
            __atomic_add_fetch (&amp;glob, 1,__ATOMIC_ACQ_REL);
    }
    return NULL;
}

int
main(int argc, char *argv[])
{
    int opt, s, j;
    int numThreads;
    pthread_t *thread;
    int verbose;
    int64_t n = 0;

    if (argc &lt; 2 ) {
     printf(" Please provide 2 args Num of threads &amp;&amp; Outer Loop\n");
     exit (-1);
    }
    numThreads = atoi(argv[1]);
    numOuterLoops = atoi (argv[2]);

    if (1) {
        printf("\tthreads: %d; outer loops: %d;\n",
                numThreads, numOuterLoops);
    }

    thread = calloc(numThreads, sizeof(pthread_t));
    if (thread == NULL) {
        printf ("calloc error so exit\n");
        exit (-1);
    }

    __atomic_store (&amp;glob, &amp;n, __ATOMIC_RELEASE);
    for (j = 0; j &lt; numThreads; j++) {
        s = pthread_create(&amp;thread[j], NULL, threadFunc, NULL);
        if (s != 0) {
            printf ("pthread_create failed so exit\n");
            exit (-1);
        }
    }

    for (j = 0; j &lt; numThreads; j++) {
        s = pthread_join(thread[j], NULL);
        if (s != 0) {
            printf ("pthread_join failed so exit\n");
            exit (-1);
        }
    }
    printf("glob value is %ld\n",__atomic_load_n (&amp;glob,__ATOMIC_RELAXED));

    exit(0);
}

   time ./thr_count 800 800000
   threads: 800; outer loops: 800000;
   glob value is 640000000

real	1m10.288s
user	0m57.269s
sys	3m31.565s

time ./thr_count_atomic 800 800000
     threads: 800; outer loops: 800000;
glob value is 640000000

real	0m20.313s
user	1m20.558s
sys	0m0.028

Change-Id: Ie5030a52ea264875e002e108dd4b207b15ab7cc7
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: In glusterfs code base we call mutex_lock/unlock to take
         reference/dereference for a object.Sometime it could be
         reason for lock contention also.

Solution: There is no need to use mutex to increase/decrease ref
          counter, instead of using mutex use gcc builtin ATOMIC
          operation.

Test:   I have not observed yet how much performance gain after apply
        this patch specific to glusterfs but i have tested same
        with below small program(mutex and atomic both) and
        get good difference.

static int numOuterLoops;
static void *
threadFunc(void *arg)
{
    int j;

    for (j = 0; j &lt; numOuterLoops; j++) {
            __atomic_add_fetch (&amp;glob, 1,__ATOMIC_ACQ_REL);
    }
    return NULL;
}

int
main(int argc, char *argv[])
{
    int opt, s, j;
    int numThreads;
    pthread_t *thread;
    int verbose;
    int64_t n = 0;

    if (argc &lt; 2 ) {
     printf(" Please provide 2 args Num of threads &amp;&amp; Outer Loop\n");
     exit (-1);
    }
    numThreads = atoi(argv[1]);
    numOuterLoops = atoi (argv[2]);

    if (1) {
        printf("\tthreads: %d; outer loops: %d;\n",
                numThreads, numOuterLoops);
    }

    thread = calloc(numThreads, sizeof(pthread_t));
    if (thread == NULL) {
        printf ("calloc error so exit\n");
        exit (-1);
    }

    __atomic_store (&amp;glob, &amp;n, __ATOMIC_RELEASE);
    for (j = 0; j &lt; numThreads; j++) {
        s = pthread_create(&amp;thread[j], NULL, threadFunc, NULL);
        if (s != 0) {
            printf ("pthread_create failed so exit\n");
            exit (-1);
        }
    }

    for (j = 0; j &lt; numThreads; j++) {
        s = pthread_join(thread[j], NULL);
        if (s != 0) {
            printf ("pthread_join failed so exit\n");
            exit (-1);
        }
    }
    printf("glob value is %ld\n",__atomic_load_n (&amp;glob,__ATOMIC_RELAXED));

    exit(0);
}

   time ./thr_count 800 800000
   threads: 800; outer loops: 800000;
   glob value is 640000000

real	1m10.288s
user	0m57.269s
sys	3m31.565s

time ./thr_count_atomic 800 800000
     threads: 800; outer loops: 800000;
glob value is 640000000

real	0m20.313s
user	1m20.558s
sys	0m0.028

Change-Id: Ie5030a52ea264875e002e108dd4b207b15ab7cc7
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfs: specify ctx in gf_log_set_loglevel</title>
<updated>2017-12-06T23:45:23+00:00</updated>
<author>
<name>Zhang Huan</name>
<email>zhanghuan@open-fs.com</email>
</author>
<published>2017-12-05T04:45:46+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=28202631fecbc3b20a55cfc5fa339663db37e955'/>
<id>28202631fecbc3b20a55cfc5fa339663db37e955</id>
<content type='text'>
specify ctx in gf_log_set_loglevel, instead of getting it from a thread
specific variable.

Change-Id: I498f826e8e32231235a6b0005026a27c327727fd
BUG: 1521213
Signed-off-by: Zhang Huan &lt;zhanghuan@open-fs.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
specify ctx in gf_log_set_loglevel, instead of getting it from a thread
specific variable.

Change-Id: I498f826e8e32231235a6b0005026a27c327727fd
BUG: 1521213
Signed-off-by: Zhang Huan &lt;zhanghuan@open-fs.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/changelog: Add default values for options</title>
<updated>2017-11-29T08:50:53+00:00</updated>
<author>
<name>Kaushal M</name>
<email>kaushal@redhat.com</email>
</author>
<published>2017-10-10T13:28:35+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=8c4aa6a51ff441574f1620fc96dea5737e4e9878'/>
<id>8c4aa6a51ff441574f1620fc96dea5737e4e9878</id>
<content type='text'>
Updates #302

Change-Id: I806e42b658114b242b787491400332299dbdbf77
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updates #302

Change-Id: I806e42b658114b242b787491400332299dbdbf77
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/changelog: xlators opts improvement for GD2</title>
<updated>2017-11-17T07:24:06+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2017-08-31T09:43:26+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0447eb4b6df3bac8b8f43a58ded6083c89866957'/>
<id>0447eb4b6df3bac8b8f43a58ded6083c89866957</id>
<content type='text'>
Updates: #302

Change-Id: Ibbf0f99d4b81a5e9a5ccee1889214b74f083a7db
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updates: #302

Change-Id: Ibbf0f99d4b81a5e9a5ccee1889214b74f083a7db
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/changelog: Structured logging support</title>
<updated>2017-11-15T14:17:58+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2017-10-12T06:01:34+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=f65ad580cf81b4853fa496b628f3dfd9d7b66ee9'/>
<id>f65ad580cf81b4853fa496b628f3dfd9d7b66ee9</id>
<content type='text'>
Structured logging infra is available in logging library with
issue #240. Log messages with dynamic content are identified and
converted to structured logging format(`gf_msg` to `gf_smsg` and
`gf_log` to `gf_slog`)

BUG: 1501054
Change-Id: I5fccc354730c07cb9ae444d0b959d1d72bd9be49
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Structured logging infra is available in logging library with
issue #240. Log messages with dynamic content are identified and
converted to structured logging format(`gf_msg` to `gf_smsg` and
`gf_log` to `gf_slog`)

BUG: 1501054
Change-Id: I5fccc354730c07cb9ae444d0b959d1d72bd9be49
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/libgfchangelog: Fix coverity issues</title>
<updated>2017-11-13T16:29:10+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2017-11-08T10:45:43+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=7d00abbf57f93cc2e6064d9bc94facbb961335c7'/>
<id>7d00abbf57f93cc2e6064d9bc94facbb961335c7</id>
<content type='text'>
Error: DEADCODE:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:524:
dead_error_begin: Execution cannot reach this statement: "default:".

Error: DEADCODE:
xlators/features/changelog/lib/src/gf-history-changelog.c:984:
dead_error_line: Execution cannot reach the expression "to" inside
this statement: "if (!from || !to)
  ret = -1;".

Error: REVERSE_INULL:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:678:
check_after_deref: Null-checking "entry" suggests that it may be null,
but it has already been dereferenced on all paths leading to the
check.

Error: STACK_USE:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:275:
stack_use_local_overflow: Local variable "ascii" uses 12288 bytes of
stack space, which exceeds the maximum single use of 10000 bytes.

Error: STACK_USE:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:167:
stack_use_local_overflow: Local variable "ascii" uses 12288 bytes of
stack space, which exceeds the maximum single use of 10000 bytes.

Error: STRING_NULL:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:589:9:
string_null_sink_parm_call: Passing parameter "from_path" to "open"
which expects a null-terminated string.

Error: UNUSED_VALUE:
xlators/features/changelog/lib/src/gf-history-changelog.c:628:
assigned_value: Assigning value "-1" to "ret" here, but that stored
value is overwritten before it can be used.

Error: STRING_NULL:
xlators/features/changelog/lib/src/gf-history-changelog.c:518:
string_null_argument: Function "sys_pread" does not terminate string
"*ccd-&gt;changelog".

BUG: 789278
Change-Id: I1414ec6d4a118ce0c14df4dbe50995c85fe3ecf7
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Error: DEADCODE:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:524:
dead_error_begin: Execution cannot reach this statement: "default:".

Error: DEADCODE:
xlators/features/changelog/lib/src/gf-history-changelog.c:984:
dead_error_line: Execution cannot reach the expression "to" inside
this statement: "if (!from || !to)
  ret = -1;".

Error: REVERSE_INULL:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:678:
check_after_deref: Null-checking "entry" suggests that it may be null,
but it has already been dereferenced on all paths leading to the
check.

Error: STACK_USE:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:275:
stack_use_local_overflow: Local variable "ascii" uses 12288 bytes of
stack space, which exceeds the maximum single use of 10000 bytes.

Error: STACK_USE:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:167:
stack_use_local_overflow: Local variable "ascii" uses 12288 bytes of
stack space, which exceeds the maximum single use of 10000 bytes.

Error: STRING_NULL:
xlators/features/changelog/lib/src/gf-changelog-journal-handler.c:589:9:
string_null_sink_parm_call: Passing parameter "from_path" to "open"
which expects a null-terminated string.

Error: UNUSED_VALUE:
xlators/features/changelog/lib/src/gf-history-changelog.c:628:
assigned_value: Assigning value "-1" to "ret" here, but that stored
value is overwritten before it can be used.

Error: STRING_NULL:
xlators/features/changelog/lib/src/gf-history-changelog.c:518:
string_null_argument: Function "sys_pread" does not terminate string
"*ccd-&gt;changelog".

BUG: 789278
Change-Id: I1414ec6d4a118ce0c14df4dbe50995c85fe3ecf7
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
