summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/ec/src/ec.h
diff options
context:
space:
mode:
authorXavier Hernandez <xhernandez@datalab.es>2015-12-01 11:50:54 +0100
committerPranith Kumar Karampuri <pkarampu@redhat.com>2016-09-08 10:08:25 -0700
commit593b7a83f7408e59ab7b3ef7dfc4fe4096d6e3cd (patch)
tree1a60ff784e7759c5dddb2352c5526f16e8696013 /xlators/cluster/ec/src/ec.h
parent8a6236e4cfc7bf86e881e5c770a19040a6060ad0 (diff)
cluster/ec: Add support for hardware acceleration
This patch implements functionalities for fast encoding/decoding using hardware support. Currently optimized x86_64, SSE and AVX is added. Additionally this patch implements a caching mecanism for inverse matrices to reduce computation time, as well as a new method for computing the inverse that takes quadratic time instead of cubic. Finally some unnecessary memory copies have been eliminated to further increase performance. Change-Id: I26c75f26fb4201bd22b51335448ea4357235065a BUG: 1289922 Signed-off-by: Xavier Hernandez <xhernandez@datalab.es> Reviewed-on: http://review.gluster.org/12837 Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec.h')
-rw-r--r--xlators/cluster/ec/src/ec.h50
1 files changed, 0 insertions, 50 deletions
diff --git a/xlators/cluster/ec/src/ec.h b/xlators/cluster/ec/src/ec.h
index 49af5c2daf2..648d444f595 100644
--- a/xlators/cluster/ec/src/ec.h
+++ b/xlators/cluster/ec/src/ec.h
@@ -11,11 +11,6 @@
#ifndef __EC_H__
#define __EC_H__
-#include "xlator.h"
-#include "timer.h"
-#include "ec-heald.h"
-#include "libxlator.h"
-
#define EC_XATTR_PREFIX "trusted.ec."
#define EC_XATTR_CONFIG EC_XATTR_PREFIX"config"
#define EC_XATTR_SIZE EC_XATTR_PREFIX"size"
@@ -26,49 +21,4 @@
#define EC_VERSION_SIZE 2
#define EC_SHD_INODE_LRU_LIMIT 10
-typedef enum {
- EC_ROUND_ROBIN,
- EC_GFID_HASH,
- EC_READ_POLICY_MAX
-} ec_read_policy_t;
-
-struct _ec
-{
- xlator_t * xl;
- int32_t healers;
- int32_t heal_waiters;
- int32_t nodes;
- int32_t bits_for_nodes;
- int32_t fragments;
- int32_t redundancy;
- uint32_t fragment_size;
- uint32_t stripe_size;
- int32_t up;
- uint32_t idx;
- uint32_t xl_up_count;
- uintptr_t xl_up;
- uint32_t xl_notify_count;
- uintptr_t xl_notify;
- uintptr_t node_mask;
- xlator_t ** xl_list;
- gf_lock_t lock;
- gf_timer_t * timer;
- gf_boolean_t shutdown;
- gf_boolean_t eager_lock;
- uint32_t background_heals;
- uint32_t heal_wait_qlen;
- struct list_head pending_fops;
- struct list_head heal_waiting;
- struct list_head healing;
- struct mem_pool * fop_pool;
- struct mem_pool * cbk_pool;
- struct mem_pool * lock_pool;
- ec_self_heald_t shd;
- char vol_uuid[UUID_SIZE + 1];
- dict_t *leaf_to_subvolid;
- ec_read_policy_t read_policy;
-};
-
-void ec_pending_fops_completed(ec_t *ec);
-
#endif /* __EC_H__ */