Go to file
Soumya Koduri 491ff40a7a gfapi: Unblock epoll thread for upcall processing
With commit#ad35193,we have made changes to offload
processing upcall notifications to synctask so as not
to block epoll threads. However seems like the issue wasnt
fully addressed.

In "glfs_cbk_upcall_data" -> "synctask_new1" after creating synctask
if there is no callback defined, the thread waits on synctask_join
till the syncfn is finished. So that way even with those changes,
epoll threads are blocked till the upcalls are processed.

Hence the right fix now is to define a callback function for that
synctask "glfs_cbk_upcall_syncop" so as to unblock epoll/notify threads
completely and the upcall processing can happen in parallel by synctask
threads.

Change-Id: I4d8645e3588fab2c3ca534e0112773aaab68a5dd
fixes: bz#1694561
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
(cherry picked from commit 4a03a71c6171f6e8382664d9d29857d06ef37741)
2019-04-03 04:30:53 +00:00
.github doc: describe how to contribute when a GitHub Pull-Request is made 2018-01-30 15:05:55 +00:00
api gfapi: Unblock epoll thread for upcall processing 2019-04-03 04:30:53 +00:00
build-aux checkpatch.pl: fix the perl warning 2018-07-06 08:12:56 +00:00
cli socket: socket event handlers now return void 2019-03-02 11:54:24 +00:00
contrib timer-wheel: run the timer function outside of locked region 2019-01-09 02:53:27 +00:00
doc doc: Final version of release-6 release notes 2019-03-19 10:17:57 -04:00
events eventsapi: Fix error while handling GlusterCmdException 2019-03-12 20:53:37 +00:00
extras rpm: add thin-arbiter package 2019-03-13 01:48:26 +00:00
geo-replication eventsapi: Fix Python3 compatibility issues 2019-02-26 14:11:41 +00:00
glusterfsd glusterfsd: Multiple shd processes are spawned on brick_mux environment 2019-03-12 20:52:59 +00:00
heal libglusterfs: Move devel headers under glusterfs directory 2018-12-05 21:47:04 +00:00
libglusterfs glusterfsd: Multiple shd processes are spawned on brick_mux environment 2019-03-12 20:52:59 +00:00
rpc dict: handle STR_OLD data type in xdr conversions 2019-03-08 14:08:40 +00:00
tests cluster/afr: Send truncate on arbiter brick from SHD 2019-03-12 20:51:47 +00:00
tools glusterfind: revert shebangs to #!/usr/bin/python3 2019-03-02 11:54:35 +00:00
xlators client-rpc: Fix the payload being sent on the wire 2019-03-29 15:23:52 +00:00
.clang-format clang-format: add the config file 2018-09-12 11:48:34 +00:00
.gitignore clang-format: add the config file 2018-09-12 11:48:34 +00:00
.mailmap mailmap: add mailmap entry for potatogim 2017-11-16 15:43:24 +00:00
.testignore logrotate: utilize the new 'maxsize' option 2018-09-19 03:29:59 +00:00
AUTHORS cleaned up some outdated files 2010-03-12 04:09:34 -08:00
autogen.sh configure.ac: fix option to stop automake aborting on pointless error 2018-12-04 12:06:50 -05:00
ChangeLog Fixed build problems for init script installation. 2009-03-09 17:45:56 +05:30
COMMITMENT add COMMITMENT file as part of GPL cure 2018-05-25 08:40:13 +00:00
configure.ac rpm: add thin-arbiter package 2019-03-13 01:48:26 +00:00
CONTRIBUTING rfc.sh: set 'Change-Id: ' header on first run 2012-08-15 10:39:43 -07:00
COPYING-GPLV2 license: dual license under GPLV2 and LGPLV3+ 2012-05-10 22:06:16 -07:00
COPYING-LGPLV3 license: dual license under GPLV2 and LGPLV3+ 2012-05-10 22:06:16 -07:00
glusterfs-api.pc.in copy_file_range support in GlusterFS 2018-12-12 15:56:55 +00:00
glusterfs.spec.in rpm: add thin-arbiter package 2019-03-13 01:48:26 +00:00
INSTALL Use the new URL for the docs 2017-09-07 11:42:08 +00:00
libgfchangelog.pc.in copy_file_range support in GlusterFS 2018-12-12 15:56:55 +00:00
libgfdb.pc.in *.pc: Fix include path in Cflags 2017-11-08 11:10:44 +00:00
MAINTAINERS glupy: remove from the build 2018-11-08 02:46:48 +00:00
Makefile.am tiering: remove the translator from build and glusterd 2018-11-02 02:39:35 +00:00
NEWS news: note the move to gerrit 2011-07-18 17:24:14 +05:30
README.md README: add a section for giving hints on testing 2018-10-11 05:10:54 +00:00
rfc.sh Update rfc.sh for release-6 2019-02-05 19:59:13 -05:00
run-tests-in-vagrant.sh tests/vagrant: install additional dependencies 2018-06-19 11:50:28 +00:00
run-tests.sh tests: run nfs tests only if --enable-gnfs is provided 2019-01-24 15:18:00 +00:00
site.h.in core: add some examples of site.h usage 2018-01-30 03:51:57 +00:00
submit-for-review.sh rfc.sh: provide a unified way to update bugs or github issues ID 2018-03-22 15:01:38 +00:00
THANKS Typo fix THANKS message 2014-09-16 02:30:36 -07:00

Gluster

Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage.

Development

Contributions to gluster in the form of patches and new feature additions can be made by following steps outlined at Developers Guide.

Documentation

The Gluster documentation can be found at Gluster Docs.

Deployment

Quick instructions to build and install can be found in INSTALL file.

Testing

GlusterFS source contains some functional tests under tests/ directory. All these tests are run against every patch submitted for review. If you want your patch to be tested, please add a .t test file as part of your patch submission. You can also submit a patch to only add a .t file for the test case you are aware of.

To run these tests, on your test-machine, just run ./run-tests.sh. Don't run this on a machine where you have 'production' glusterfs is running, as it would blindly kill all gluster processes in each runs.

If you are sending a patch, and want to validate one or few specific tests, then run a single test by running the below command.

  bash# /bin/bash ${path_to_gluster}/tests/basic/rpc-coverage.t

You can also use prove tool if available in your machine, as follows.

  bash# prove -vmfe '/bin/bash' ${path_to_gluster}/tests/basic/rpc-coverage.t

Maintainers

The list of Gluster maintainers is available in MAINTAINERS file.

License

Gluster is dual licensed under GPLV2 and LGPLV3+.

Please visit the Gluster Home Page to find out more about Gluster.