[S] Change in ...nfs-ganesha[next]: Write Delegations FSAL_CEPH changes
by Animesh Javali (GerritHub)
Animesh Javali has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1223395?usp=email )
Change subject: Write Delegations FSAL_CEPH changes
......................................................................
Write Delegations FSAL_CEPH changes
Changes include:
- Enabling Read and Write file delegations by switching delegation
option from `FSAL_OPTION_FILE_READ_DELEG` to
`FSAL_OPTION_FILE_DELEGATIONS`.
- In `nfs4_op_open`, store the associated open state key
(`stateid_other`) within the delegation state to open the
files using this information later via fsal_start_io.
- Added FSAL_O_ANY flag for write delegation and delegreturn cases.
- Removed exit label in ceph_fsal_lease_op2 to avoid returning
success whenever fsal_start_io returns failure.
Change-Id: I0906981859f9fda9226faf9feda0c3a4fbbf57a5
Signed-off-by: Animesh Javali <Animesh.Javali(a)ibm.com>
---
M src/FSAL/FSAL_CEPH/handle.c
M src/FSAL/FSAL_CEPH/main.c
M src/Protocols/NFS/nfs4_op_open.c
M src/include/sal_data.h
4 files changed, 20 insertions(+), 6 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/95/1223395/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1223395?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I0906981859f9fda9226faf9feda0c3a4fbbf57a5
Gerrit-Change-Number: 1223395
Gerrit-PatchSet: 1
Gerrit-Owner: Animesh Javali <Animesh.Javali(a)ibm.com>
1 month
Announce Push of V7.2
by Frank Filz
Branch next
Tag:V7.2
NOTE: This merge includes an ntirpc pullup. Please update your submodule.
Merge Highlights
* FSAL_CEPH: Disable zerocopy in cmake
* Fix unitialized errors
* Ignore .egg-info directories from python scripts
* Fix conditional builds for several things
- Make MONITORING conditional, and integrate with ntirpc
- Pull up ntirpc to correct version (V7.2)
- Fix RPM build for conditional monitoring, and rename it's package to
match the naming convention for Ganesha
- Fix a few CMake errors from deprecation (only showed up in RPM build)
- Fix RPM conditional build for QOS and NFSIDMAP and ADMIN_TOOLS
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
Contents:
9b3b3e19c Frank S. Filz V7.2
183cd8ea6 Frank S. Filz FSAL_CEPH: Disable zerocopy in cmake
f66e136c2 Daniel Gryniewicz Fix conditional builds for several things
3adec620c Daniel Gryniewicz Ignore .egg-info directories from python scripts
8c570f669 Daniel Gryniewicz Fix unitialized errors
1 month
Ganesha release management process discussion
by Frank Filz
Hello all,
There have been a variety of discussions regarding maintenance of stable
branches, what is merged, and when qualifies a patch as suitable for a
stable merge.
Out releases have been taking far too long and maintenance and support of
stable branches has been troublesome. Meanwhile, the various vendors
supporting enterprise products are maintaining separate repos with
backported features, features that have not merged upstream, and sometimes
not even submitted upstream.
With all of this in mind, I have had various discussions about the
possibility of doing "rolling releases" where basically each merge is a
release. Combined with this, we would change how we support stable branches.
Rather than a limited upstream resource trying to maintain stable branches,
we would highlight stable tags on the wiki, and welcome vendors who maintain
a stable branch for their product to host that branch on the nfs-ganesha
github.
Some thoughts about this:
Rather than holding features while we try and stabilize a branch, features
that are ready for merging could be merged immediately.
Anyone can make a call for more extensive testing on a proposed patch that
is intrusive.
Any intrusive feature should have a conditional compile option as well as a
run time configuration that can disable it.
It is expected that a FSAL will be compiled against the version of Ganesha
it will load into. We can explore enforcing this with something better than
the "FSAL API Version".
Any FSAL API change that requires code changes in all FSALs must be
submitted with changes for all in tree FSALs such that they will compile.
Such changes should be tested on all FSALs (with cooperation of stakeholders
for each FSAL). Since this may not be possible for FSALs that don't have
active community members who support the FSAL, exceptions will be granted if
no response is forthcoming for a given FSAL.
Such API changes will be highlighted in the wiki so those who have external
FSALs can be aware that their FSAL will need changes to work post merge.
Such API changes hopefully will be rare. Any new FSAL API methods added
should be added in a way that a FSAL that doesn't supply the method but is
compiled against the current Ganesha code will work without interruption. If
new fields must be added to a FSAL API structure, the addition should be
done in a way that a FSAL that does not reference the new field, but is
compiled against the latest Ganesha will still work. These ideals will
minimize the situations where all FSALs MUST be modified.
Note that functions and structures that are not declared in a header file
with "fsal" in the name are nevertheless part of the FSAL API. For example,
FSALs access struct gsh_export and quite a few functions.
Release numbering: One option is we simplify our release number to a single
number, for example instead of the next release being V8.0, it would simply
be V8. Another option is to keep the point releases, bumping the major
number each time a new feature of significance is added. This would simplify
documentation on the wiki as only the bug highlights since the last major
release would need to be documented. On the other hand, we might see release
numbers like V7.23 because there have been so many merges before a major
feature was added.
In any case on release numbering, I plan to continue the V7.x numbering
until we have verified that V7.x properly compiles with all desired
conditional compile flag settings (i.e. with and without monitoring and QoS
to name a couple troublesome ones).
The counter proposal is we follow a strict major release cadence, and then
immediately open the next branch for feature submissions, but that might put
the community on the hook for supporting multiple stable branches with
numerous back ports and continues the problem of when something is a feature
that demands being put in the next major release and when something is a bug
fix needed in one or more stable branches.
The rolling release proposal may put more burden on vendors to support their
own stable branches, but experience shows they need to anyway and those
willing to manage upstream stable branches have been limited. There is also
precedence for vendors hosting their product branch in the nfs-ganesha
github with IBM having hosted its stable branches in nfs-ganesha.
I encourage as many people as possible to join the Tuesday September 30 7:00
AM Pacific Daylight Time community meeting or the September 30 4:00 PM
Pacific Daylight Time secondary community meeting to continue discussion.
I hope I have captured all the important bits of the various conversations.
Thanks
Frank
1 month
[S] Change in ...nfs-ganesha[next]: Fix cid_mutex deadlock in reserve_lease_or_expire
by Oscar Ou (GerritHub)
Oscar Ou has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1223165?usp=email )
Change subject: Fix cid_mutex deadlock in reserve_lease_or_expire
......................................................................
Fix cid_mutex deadlock in reserve_lease_or_expire
In reserve_lease_or_expire(), cid_mutex it held first.
If the lease is expired, it decreases the state owner reference by
calling dec_state_owner_ref(), then it turn acquires the cid_mutex
inside the free_nfs4_owner().
To prevent this deadlock, dec_state_owner_ref() should be called
outside the the cid_mutex.
Change-Id: I29d92867548ab7bf0b74e16832f64f7138ff7fce
Signed-off-by: Oscar Ou <oscarou(a)synology.com>
---
M src/SAL/nfs4_lease.c
1 file changed, 8 insertions(+), 8 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/65/1223165/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1223165?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I29d92867548ab7bf0b74e16832f64f7138ff7fce
Gerrit-Change-Number: 1223165
Gerrit-PatchSet: 1
Gerrit-Owner: Oscar Ou <oscarou(a)synology.com>
1 month
[S] Change in ...nfs-ganesha[next]: Fix RD5a pynfs nfs4.0 failure by handling very large READ offsets
by Name of user not set (GerritHub)
Vidya.Thumukunta(a)ibm.com has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1223094?usp=email )
Change subject: Fix RD5a pynfs nfs4.0 failure by handling very large READ offsets
......................................................................
Fix RD5a pynfs nfs4.0 failure by handling very large READ offsets
pynfs4.0 test RD5a (testVeryLargeOffset) expected NFS4_OK with 0 bytes
and eof=TRUE when a READ is issued beyond the max file offset, but
Ganesha was returning NFS4ERR_FBIG.
As Per RFC 7530:
- If offset ≥ file size, server must return NFS4_OK with zero-length data
and eof=TRUE.
- NFS4ERR_FBIG is not a valid error for READ.
This patch updates nfs4_op_read() to:
- Return NFS4_OK with 0 bytes and eof=TRUE if offset ≥ MaxOffsetRead.
- Clamp size when (offset + size) would exceed MaxOffsetRead.
- Stop using NFS4ERR_FBIG for READ requests.
Change-Id: Ia91fd00214e8f02c2d4d3366c4c521d9fedb1f85
Signed-off-by: VidyaThumukunta <Vidya.Thumukunta(a)ibm.com>
---
M src/Protocols/NFS/nfs4_op_read.c
1 file changed, 19 insertions(+), 6 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/94/1223094/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1223094?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Ia91fd00214e8f02c2d4d3366c4c521d9fedb1f85
Gerrit-Change-Number: 1223094
Gerrit-PatchSet: 1
Gerrit-Owner: Vidya.Thumukunta(a)ibm.com
1 month, 1 week
[M] Change in ...nfs-ganesha[next]: Add Ganesha resource usage metrics for Prometheus
by Name of user not set (GerritHub)
sragraha(a)redhat.com has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222981?usp=email )
Change subject: Add Ganesha resource usage metrics for Prometheus
......................................................................
Add Ganesha resource usage metrics for Prometheus
nfs_memory_resident_ram_size: Resident set size (physical RAM used by the process), in MB
nfs_virtual_ram_size: Virtual memory usage of the process, in GB
nfs_memory_swap_size: Swap memory used by the process, in KB
nfs_cpu_utilization: Average CPU utilization by the Ganesha service, expressed as a percent
Change-Id: I961d4e1d5ea1a638a27ca80d399effdcb35a633c
Signed-off-by: Sreedhar Agraharam <sragraha(a)redhat.com>
---
M src/monitoring/CMakeLists.txt
M src/monitoring/dynamic_metrics.cc
M src/monitoring/include/dynamic_metrics.h
M src/monitoring/include/prometheus_exposer.h
M src/monitoring/prometheus_exposer.cc
5 files changed, 82 insertions(+), 1 deletion(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/81/1222981/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222981?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I961d4e1d5ea1a638a27ca80d399effdcb35a633c
Gerrit-Change-Number: 1222981
Gerrit-PatchSet: 1
Gerrit-Owner: sragraha(a)redhat.com
1 month, 1 week
[L] Change in ...nfs-ganesha[next]: Added new metrics support QOS feature
by Name of user not set (GerritHub)
sragraha(a)redhat.com has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222927?usp=email )
Change subject: Added new metrics support QOS feature
......................................................................
Added new metrics support QOS feature
This PR introduces structured support for QoS metrics across three categories:
Per_Export
Per_Client
Per_Export_Per_Client
Each category supports 6 metrics, covering:
Bandwidth (BW)
IOPS
Tokens
Example: Metrics for Per_Export
Bandwidth:
QoS_per_export_readbucket_bw_info
QoS_per_export_writebucket_bw_info
IOPS:
QoS_per_export_readbucket_iops_info
QoS_per_export_writebucket_iops_info
Tokens:
QoS_per_export_readbucket_tokens_info
QoS_per_export_writebucket_tokens_info
The same 6-metric structure applies to:
Per_Client (e.g., QoS_per_client_*)
Per_Export_Per_Client (e.g., QoS_per_pepc_*)
Signed-off-by: Sreedhar Agraharam <sragraha(a)redhat.com>
Change-Id: Ib66c7643aae2e89b76fff47ac5468b665b995d8b
---
M src/MainNFSD/nfs_qos.c
M src/include/nfs_qos.h
2 files changed, 293 insertions(+), 3 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/27/1222927/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222927?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Ib66c7643aae2e89b76fff47ac5468b665b995d8b
Gerrit-Change-Number: 1222927
Gerrit-PatchSet: 1
Gerrit-Owner: sragraha(a)redhat.com
1 month, 1 week
[XL] Change in ...nfs-ganesha[next]: [DNM]: Test PR to check the too many characters
by Name of user not set (GerritHub)
manim(a)redhat.com has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222628?usp=email )
Change subject: [DNM]: Test PR to check the too many characters
......................................................................
[DNM]: Test PR to check the too many characters
Change-Id: I9f652a79ef71631d689121cfe0a3ba0554b79ddf
Signed-off-by: Manimaran M <manim(a)redhat.com>
Signed-off-by: Naresh Chillarege <naresh.chillarege(a)ibm.com>
---
M src/CMakeLists.txt
M src/MainNFSD/CMakeLists.txt
A src/MainNFSD/nfs_cluster_qos.c
M src/MainNFSD/nfs_init.c
M src/MainNFSD/nfs_qos.c
M src/MainNFSD/nfs_rpc_dispatcher_thread.c
M src/MainNFSD/nfs_worker_thread.c
M src/Protocols/CMakeLists.txt
A src/Protocols/CQOS/CMakeLists.txt
A src/Protocols/CQOS/cqos_Null.c
A src/Protocols/CQOS/cqos_pubsub.c
M src/Protocols/XDR/CMakeLists.txt
A src/Protocols/XDR/cqos.x
A src/Protocols/XDR/cqos_xdr.c
A src/Protocols/XDR/xdr_cqos.c
M src/include/client_mgr.h
M src/include/config-h.in.cmake
A src/include/cqos.h
M src/include/gsh_config.h
A src/include/nfs_cluster_qos.h
M src/include/nfs_init.h
M src/include/nfs_proto_data.h
M src/include/nfs_proto_functions.h
M src/include/nfs_qos.h
M src/nfs-ganesha.spec-in.cmake
M src/support/client_mgr.c
M src/support/nfs_read_conf.c
27 files changed, 2,404 insertions(+), 35 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/28/1222628/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222628?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I9f652a79ef71631d689121cfe0a3ba0554b79ddf
Gerrit-Change-Number: 1222628
Gerrit-PatchSet: 1
Gerrit-Owner: manim(a)redhat.com
1 month, 2 weeks
[XL] Change in ...nfs-ganesha[next]: Cluster QoS module implementation
by Name of user not set (GerritHub)
Naresh.Chillarege(a)ibm.com has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222624?usp=email )
Change subject: Cluster QoS module implementation
......................................................................
Cluster QoS module implementation
The Cluster QoS feature does bandwidth rate-limiting and
iops rate-limiting for across all nodes of cluster.
It makes sure that aggregate bandwidth and iops of all
nodes is with in the configured value.
Change-Id: I985895068b54ae9404b5e9eb3cb1b69b8560849c
Signed-off-by: Naresh Chillarege <naresh.chillarege(a)ibm.com>
---
M src/CMakeLists.txt
M src/MainNFSD/CMakeLists.txt
A src/MainNFSD/nfs_cluster_qos.c
M src/MainNFSD/nfs_init.c
M src/MainNFSD/nfs_qos.c
M src/MainNFSD/nfs_rpc_dispatcher_thread.c
M src/MainNFSD/nfs_worker_thread.c
M src/Protocols/CMakeLists.txt
A src/Protocols/CQOS/CMakeLists.txt
A src/Protocols/CQOS/cqos_Null.c
A src/Protocols/CQOS/cqos_pubsub.c
M src/Protocols/XDR/CMakeLists.txt
A src/Protocols/XDR/cqos.x
A src/Protocols/XDR/cqos_xdr.c
A src/Protocols/XDR/xdr_cqos.c
M src/include/client_mgr.h
M src/include/config-h.in.cmake
A src/include/cqos.h
M src/include/gsh_config.h
A src/include/nfs_cluster_qos.h
M src/include/nfs_init.h
M src/include/nfs_proto_data.h
M src/include/nfs_proto_functions.h
M src/include/nfs_qos.h
M src/nfs-ganesha.spec-in.cmake
M src/support/client_mgr.c
M src/support/nfs_read_conf.c
27 files changed, 2,404 insertions(+), 35 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/24/1222624/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1222624?usp=email
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I985895068b54ae9404b5e9eb3cb1b69b8560849c
Gerrit-Change-Number: 1222624
Gerrit-PatchSet: 1
Gerrit-Owner: Naresh.Chillarege(a)ibm.com
1 month, 2 weeks