| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Removed unused ref_count variable
- Reordered the struct to get related variables closer together.
- Changed 'complete' from a '_Bool' to a 'int32_t'
Before:
```
struct _call_frame {
call_stack_t * root; /* 0 8 */
call_frame_t * parent; /* 8 8 */
struct list_head frames; /* 16 16 */
void * local; /* 32 8 */
xlator_t * this; /* 40 8 */
ret_fn_t ret; /* 48 8 */
int32_t ref_count; /* 56 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
gf_lock_t lock; /* 64 40 */
void * cookie; /* 104 8 */
_Bool complete; /* 112 1 */
/* XXX 3 bytes hole, try to pack */
glusterfs_fop_t op; /* 116 4 */
struct timespec begin; /* 120 16 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
struct timespec end; /* 136 16 */
const char * wind_from; /* 152 8 */
const char * wind_to; /* 160 8 */
const char * unwind_from; /* 168 8 */
const char * unwind_to; /* 176 8 */
/* size: 184, cachelines: 3, members: 17 */
/* sum members: 177, holes: 2, sum holes: 7 */
/* last cacheline: 56 bytes */
```
After:
```
struct _call_frame {
call_stack_t * root; /* 0 8 */
call_frame_t * parent; /* 8 8 */
struct list_head frames; /* 16 16 */
struct timespec begin; /* 32 16 */
struct timespec end; /* 48 16 */
/* --- cacheline 1 boundary (64 bytes) --- */
void * local; /* 64 8 */
gf_lock_t lock; /* 72 40 */
void * cookie; /* 112 8 */
xlator_t * this; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ret_fn_t ret; /* 128 8 */
glusterfs_fop_t op; /* 136 4 */
int32_t complete; /* 140 4 */
const char * wind_from; /* 144 8 */
const char * wind_to; /* 152 8 */
const char * unwind_from; /* 160 8 */
const char * unwind_to; /* 168 8 */
/* size: 176, cachelines: 3, members: 16 */
/* last cacheline: 48 bytes */
```
Fixes: #2130
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* core: Optimize _xlator->stats structure to make memory access friendly
Current xlator->stats is not efficient for frequently access memroy
variables, to make it friendly optimize stats structure.
Fixes: #1583
Change-Id: I5c9d263b11d9bbf0bf5501e461bdd3cce03591f9
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
* core: Optimize _xlator->stats structure to make memory access friendly
Resolve reviewer comments
Fixes: #1583
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
Change-Id: I44a728263bfc397158dc95e4a9bae393fd3c9883
* core: Optimize _xlator->stats structure to make memory access friendly
Resolve reviewer comments
Fixes: #1583
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
Change-Id: I55e093e3f639052644ce6379cbbe2a15b0ef4be7
|
|
|
|
|
|
|
|
|
|
| |
Added latency tracking of rpc-handling code. With this change we
should be able to monitor the amount of time rpc-handling code is
consuming for each of the rpc call.
fixes: #1466
Change-Id: I04fc7f3b12bfa5053c0fc36885f271cb78f581cd
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Glusterfs so far constrained itself with an arbitrary limit (32)
for the number of groups read from /proc/[pid]/status (this was
the number of groups shown there prior to Linux commit
v3.7-9553-g8d238027b87e (v3.8-rc1~74^2~59); since this commit, all
groups are shown).
With this change we'll read groups up to the number Glusterfs
supports in general (64k).
Note: the actual number of groups that are made use of in a
regular Glusterfs setup shall still be capped at ~93 due to limitations
of the RPC transport. To be able to handle more groups than that,
brick side gid resolution (server.manage-gids option) can be used along
with NIS, LDAP or other such networked directory service (see
https://github.com/gluster/glusterdocs/blob/5ba15a2/docs/Administrator%20Guide/Handling-of-users-with-many-groups.md#limit-in-the-glusterfs-protocol
).
Also adding some diagnostic messages to frame_fill_groups().
Change-Id: I271f3dc3e6d3c44d6d989c7a2073ea5f16c26ee0
fixes: #1075
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
|
libglusterfs devel package headers are referenced in code using
include semantics for a program, this while it works can be better
especially when dealing with out of tree xlator builds or in
general out of tree devel package usage.
Towards this, the following changes are done,
- moved all devel headers under a glusterfs directory
- Included these headers using system header notation <> in all
code outside of libglusterfs
- Included these headers using own program notation "" within
libglusterfs
This change although big, is just moving around the headers and
making it correct when including these headers from other sources.
This helps us correctly include libglusterfs includes without
namespace conflicts.
Change-Id: Id2a98854e671a7ee5d73be44da5ba1a74252423b
Updates: bz#1193929
Signed-off-by: ShyamsundarR <srangana@redhat.com>
|