summaryrefslogtreecommitdiffstats
path: root/xlators/mount/fuse/src/fuse-bridge.h
diff options
context:
space:
mode:
authorKrutika Dhananjay <kdhananj@redhat.com>2017-09-07 18:48:34 +0530
committerShyamsundar Ranganathan <srangana@redhat.com>2017-10-02 12:41:57 +0000
commit2a663389c5faf31f267be7f7fa98589019463c71 (patch)
tree26dcff2d384dca8b87f0c35227079d40675fe964 /xlators/mount/fuse/src/fuse-bridge.h
parentf5998f07dfd21d06a4119416ca79db50232b50d4 (diff)
mount/fuse: Make event-history feature configurable
... and disable it by default. Backport of: > Change-Id: Ia533788d309c78688a315dc8cd04d30fad9e9485 > Reviewed-on: https://review.gluster.org/18242 > BUG: 1467614 > cherry-picked from commit 956d43d6e89d40ee683547003b876f1f456f03b6 This is because having it disabled seems to improve performance. This could be due to the lock contention by the different epoll threads on the circular buff lock in the fop cbks just before writing their response to /dev/fuse. Just to provide some data - wrt ovirt-gluster hyperconverged environment, I saw an increase in IOPs by 12K with event-history disabled for randrom read workload. Usage: mount -t glusterfs -o event-history=on $HOSTNAME:$VOLNAME $MOUNTPOINT OR glusterfs --event-history=on --volfile-server=$HOSTNAME --volfile-id=$VOLNAME $MOUNTPOINT Change-Id: Ia533788d309c78688a315dc8cd04d30fad9e9485 BUG: 1495430 Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Diffstat (limited to 'xlators/mount/fuse/src/fuse-bridge.h')
-rw-r--r--xlators/mount/fuse/src/fuse-bridge.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/xlators/mount/fuse/src/fuse-bridge.h b/xlators/mount/fuse/src/fuse-bridge.h
index e4075c83f2c..85e9ebc795d 100644
--- a/xlators/mount/fuse/src/fuse-bridge.h
+++ b/xlators/mount/fuse/src/fuse-bridge.h
@@ -134,6 +134,8 @@ struct fuse_private {
/* Enable or disable capability support */
gf_boolean_t capability;
+ /* Enable or disable event history */
+ gf_boolean_t event_history;
};
typedef struct fuse_private fuse_private_t;
@@ -277,7 +279,8 @@ typedef struct fuse_graph_switch_args fuse_graph_switch_args_t;
#define fuse_log_eh_fop(this, state, frame, op_ret, op_errno) \
do { \
- if (this->history) { \
+ fuse_private_t *priv = this->private; \
+ if (this->history && priv->event_history) { \
if (state->fd) \
gf_log_eh ("op_ret: %d, op_errno: %d, " \
"%"PRIu64", %s () => %p, gfid: %s", \
@@ -297,10 +300,11 @@ typedef struct fuse_graph_switch_args fuse_graph_switch_args_t;
} \
} while(0)
-#define fuse_log_eh(this, args...) \
- do { \
- if (this->history) \
- gf_log_eh(args); \
+#define fuse_log_eh(this, args...) \
+ do { \
+ fuse_private_t *priv = this->private; \
+ if (this->history && priv->event_history) \
+ gf_log_eh(args); \
} while (0)
static inline xlator_t *