[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: FSAL_GLUSTER : Avoid double free for glfsal_module
>From Jiffin Tony Thottan: Jiffin Tony Thottan has uploaded a new change for review. https://review.gerrithub.io/294623 Change subject: FSAL_GLUSTER : Avoid double free for glfsal_module .. FSAL_GLUSTER : Avoid double free for glfsal_module If FSAL_GLUSTER fails to load it will free glfsal_module in glusterfs_init. Since load_fsal() got failed, a clean up should be performed and as a part of that glusterfs_unload() got executed. Finally it will end up in a double free for glfsal_module Change-Id: I593dbb43b45d61d5a78333b330c7e57c9d3219ef Signed-off-by: Jiffin Tony Thottan --- M src/FSAL/FSAL_GLUSTER/main.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/23/294623/1 -- To view, visit https://review.gerrithub.io/294623 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I593dbb43b45d61d5a78333b330c7e57c9d3219ef Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Jiffin Tony Thottan -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] NLM async locking
> Hi Frank, > Are you going to push the patch you asked me to test ? Pushed: https://review.gerrithub.io/294605 Frank > From: "Frank Filz"> To: Marc Eshel/Almaden/IBM@IBMUS > Cc: "'nfs-ganesha-devel'" > Date: 09/07/2016 04:18 PM > Subject:RE: [Nfs-ganesha-devel] NLM async locking > > > > I changed it so we don't take the lock off the list when it find the blocked lock > entry in the blocked lock list. > > It then removes it from the list only if sending the async grant succeeds. > > It probably needs some tweaking, but it SHOULD help. > > Frank > > > -Original Message- > > From: Marc Eshel [mailto:es...@us.ibm.com] > > Sent: Wednesday, September 7, 2016 4:11 PM > > To: Frank Filz > > Cc: 'nfs-ganesha-devel' > > Subject: RE: [Nfs-ganesha-devel] NLM async locking > > > > Just looking at the code I don't see where you retry the lock request > from > > the FSAL which is required to add it back to the FSAL queue. > > Am I missing something? > > Marc. > > > > > > > > From: "Frank Filz" > > To: Marc Eshel/Almaden/IBM@IBMUS > > Cc: "'nfs-ganesha-devel'" > > Date: 09/07/2016 03:57 PM > > Subject:RE: [Nfs-ganesha-devel] NLM async locking > > > > > > > > Marc, > > > > Could you try the top commit in this branch: > > > > https://github.com/ffilz/nfs-ganesha/commits/async > > > > It may not be the complete solution, but I think it will help your > > scenario. > > > > I need to do more work on async blocking locks... > > > > And it looks like without async blocking lock support, Ganesha doesn't > > handle the case where a lock blocks on a conflicting lock from outside > the > > Ganesha instance. I will be looking at implementing my thread pool > > idea that I modeled in the multilock tool. > > > > Frank > > > > > -Original Message- > > > From: Frank Filz [mailto:ffilz...@mindspring.com] > > > Sent: Wednesday, September 7, 2016 9:42 AM > > > To: 'Marc Eshel' > > > Cc: 'nfs-ganesha-devel' > > > Subject: Re: [Nfs-ganesha-devel] NLM async locking > > > > > > Ok, I'm not sure this ever worked right... > > > > > > With the lock available upcall, we never put the lock back on the > > blocked > > lock > > > list if an attempt to acquire the lock from the FSAL fails... > > > > > > So the way the lock available upcall is supposed to work: > > > > > > Client requests conflicting lock > > > Blocked lock gets registered by FSAL SAL puts lock on blocked lock > > > list Time passes FSAL makes lock available upcall SAL finds the > > > blocked lock entry in the blocked lock list SAL makes a > > call > > to > > > FSAL to attempt to acquire the lock Assume that fails (in the > > > example, because multiple conflicting locks got > > > notified) > > > SAL puts the lock BACK on the blocked lock list (this step is > > > missing) > > and > > all is > > > well > > > Time passes > > > FSAL makes lock available upcall > > > SAL finds the blocked lock entry in the blocked lock list SAL makes > > > a > > call > > to > > > FSAL to attempt to acquire the lock Lock is granted by FSAL SAL > > > makes > > async > > > call back to client If THAT fails, SAL releases the lock from the > > > FSAL > > and > > > disposes of the lock entry and all is well If THAT succeeds, the > > > lock > is > > > completely granted and all is well > > > > > > I also see that if the client retries the lock before it is granted, > we > > don't > > > remove the lock entry from the blocked lock list... I don't think > > > that > > will ever > > > cause a problem but we should clean that up also... > > > > > > Let me try a patch to fix... > > > > > > Frank > > > > > > > -Original Message- > > > > From: Marc Eshel [mailto:es...@us.ibm.com] > > > > Sent: Tuesday, September 6, 2016 9:34 PM > > > > To: Frank Filz > > > > Cc: 'nfs-ganesha-devel' > > > > Subject: RE: NLM async locking > > > > > > > > Did you get a chance to look at this problem? > > > > Marc. > > > > > > > > > > > > > > > > From: "Frank Filz" > > > > To: Marc Eshel/Almaden/IBM@IBMUS > > > > Cc: "'nfs-ganesha-devel'" > > > > > > Date: 08/29/2016 02:37 PM > > > > Subject:RE: NLM async locking > > > > > > > > > > > > > > > > > I see the following failure: > > > > > 1. Get conflicting locks from 3 clients > > > > > cli 1 gets 0-100 > > > > > cli 2 is blocked on 0-1000 > > > > > cli 3 is blocked on 0-1 > > > > > 2. cli 1 unlocks > > > > > up-call for cli 2 and 3 to retry > > > > > cli 2 gets 0-1000 > > > > > cli 3 is blocked on 0-1000 > > > > > 3. cli 2 unlocks > > > > > up-call for cli 3 but Ganesha
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: Add a thread to poll blocked locks
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294609 Change subject: Add a thread to poll blocked locks .. Add a thread to poll blocked locks If the FSAL doesn't support async blocked locks, we must poll the blocked locks on some interval. To implement this, we need the following: 1. A thread to poll 2. A config variable to define the polling interval 3. do_lock_op must track if a LOCKB request was made to an FSAL that doesn't support async blocking locks, and in that case, it will return STATE_LOCK_BLOCKED instead of STATE_LOCK_CONFLICT. We still translate the LOCKB request to a LOCK request to the FSAL. 4. The polling thread will try_to_grant_lock with a new grant type, STATE_GRANT_POLL (though in fact, the action for this is identical to STATE_GRANT_FSAL_AVAILABLE). Incidental changes: We track the type of blocked lock: INTERNAL (is blocked on another lock managed by this Ganesha instance) ASYNC (is managed by FSAL async blocking) POLL (will be polled by the new thread) This allows the polling thread to easily skip the blocked locks that will not be relevant. It also allows us to indicate the type of block when displaying lock entries. Change-Id: I502cc8757ef1132301b73393d5fbefa19ab485df Signed-off-by: Frank S. Filz --- M src/MainNFSD/nfs_init.c M src/SAL/state_async.c M src/SAL/state_lock.c M src/config_samples/config.txt M src/include/gsh_config.h M src/include/sal_data.h M src/include/sal_functions.h M src/support/nfs_read_conf.c 8 files changed, 205 insertions(+), 29 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/09/294609/1 -- To view, visit https://review.gerrithub.io/294609 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I502cc8757ef1132301b73393d5fbefa19ab485df Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: multilock: Actually send OFD/POSIX parameter to ml client
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294606 Change subject: multilock: Actually send OFD/POSIX parameter to ml client .. multilock: Actually send OFD/POSIX parameter to ml client Change-Id: Ib60c0b4a5fd396dc17654dc338f5c6f6fca62249 Signed-off-by: Frank S. Filz --- M src/tools/multilock/ml_functions.c 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/06/294606/1 -- To view, visit https://review.gerrithub.io/294606 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib60c0b4a5fd396dc17654dc338f5c6f6fca62249 Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: FSAL_PROXY does not support locks
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294607 Change subject: FSAL_PROXY does not support locks .. FSAL_PROXY does not support locks Change-Id: Ife4a60d27799b18a96e616c62bb1c7c6d06805e1 Signed-off-by: Frank S. Filz --- M src/FSAL/FSAL_PROXY/main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/07/294607/1 -- To view, visit https://review.gerrithub.io/294607 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ife4a60d27799b18a96e616c62bb1c7c6d06805e1 Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: FSAL_VFS: Don't lose rc from lock call when doing getlock fo...
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294608 Change subject: FSAL_VFS: Don't lose rc from lock call when doing getlock for conflict .. FSAL_VFS: Don't lose rc from lock call when doing getlock for conflict Change-Id: I1e7fddf8cd26b433b49510eb55c914816f3e8ff8 Signed-off-by: Frank S. Filz --- M src/FSAL/FSAL_VFS/file.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/08/294608/1 -- To view, visit https://review.gerrithub.io/294608 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1e7fddf8cd26b433b49510eb55c914816f3e8ff8 Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: Rename config_samples/logging..txt -> config_samples/logging...
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294610 Change subject: Rename config_samples/logging..txt -> config_samples/logging.txt .. Rename config_samples/logging..txt -> config_samples/logging.txt Change-Id: Ib42954cc797d7b72ef92c28dce23d3b920019745 Signed-off-by: Frank S. Filz --- R src/config_samples/logging.txt 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/10/294610/1 -- To view, visit https://review.gerrithub.io/294610 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib42954cc797d7b72ef92c28dce23d3b920019745 Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: Fix STATE_GRANT_FSAL_AVAILABLE upcall
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294605 Change subject: Fix STATE_GRANT_FSAL_AVAILABLE upcall .. Fix STATE_GRANT_FSAL_AVAILABLE upcall Don't remove locks from the blocked lock list until a grant has successfully been sent or has failed. Change-Id: I1eec2059e951f45a644770a07fd38fee4b8fd099 Signed-off-by: Frank S. Filz --- M src/SAL/state_lock.c 1 file changed, 18 insertions(+), 2 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/05/294605/1 -- To view, visit https://review.gerrithub.io/294605 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1eec2059e951f45a644770a07fd38fee4b8fd099 Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] NLM async locking
Yes, will be pushing it shortly. Have several other patches, including now polling blocked locks on FSALs that don't support async blocking locks. Frank > -Original Message- > From: Marc Eshel [mailto:es...@us.ibm.com] > Sent: Wednesday, September 14, 2016 4:03 PM > To: Marc Eshel> Cc: Frank Filz ; 'nfs-ganesha-devel' de...@lists.sourceforge.net> > Subject: Re: [Nfs-ganesha-devel] NLM async locking > > Hi Frank, > Are you going to push the patch you asked me to test ? > Thanks, Marc. > > > > > > From: "Frank Filz" > To: Marc Eshel/Almaden/IBM@IBMUS > Cc: "'nfs-ganesha-devel'" > Date: 09/07/2016 04:18 PM > Subject:RE: [Nfs-ganesha-devel] NLM async locking > > > > I changed it so we don't take the lock off the list when it find the blocked lock > entry in the blocked lock list. > > It then removes it from the list only if sending the async grant succeeds. > > It probably needs some tweaking, but it SHOULD help. > > Frank > > > -Original Message- > > From: Marc Eshel [mailto:es...@us.ibm.com] > > Sent: Wednesday, September 7, 2016 4:11 PM > > To: Frank Filz > > Cc: 'nfs-ganesha-devel' > > Subject: RE: [Nfs-ganesha-devel] NLM async locking > > > > Just looking at the code I don't see where you retry the lock request > from > > the FSAL which is required to add it back to the FSAL queue. > > Am I missing something? > > Marc. > > > > > > > > From: "Frank Filz" > > To: Marc Eshel/Almaden/IBM@IBMUS > > Cc: "'nfs-ganesha-devel'" > > Date: 09/07/2016 03:57 PM > > Subject:RE: [Nfs-ganesha-devel] NLM async locking > > > > > > > > Marc, > > > > Could you try the top commit in this branch: > > > > https://github.com/ffilz/nfs-ganesha/commits/async > > > > It may not be the complete solution, but I think it will help your > > scenario. > > > > I need to do more work on async blocking locks... > > > > And it looks like without async blocking lock support, Ganesha doesn't > > handle the case where a lock blocks on a conflicting lock from outside > the > > Ganesha instance. I will be looking at implementing my thread pool > > idea that I modeled in the multilock tool. > > > > Frank > > > > > -Original Message- > > > From: Frank Filz [mailto:ffilz...@mindspring.com] > > > Sent: Wednesday, September 7, 2016 9:42 AM > > > To: 'Marc Eshel' > > > Cc: 'nfs-ganesha-devel' > > > Subject: Re: [Nfs-ganesha-devel] NLM async locking > > > > > > Ok, I'm not sure this ever worked right... > > > > > > With the lock available upcall, we never put the lock back on the > > blocked > > lock > > > list if an attempt to acquire the lock from the FSAL fails... > > > > > > So the way the lock available upcall is supposed to work: > > > > > > Client requests conflicting lock > > > Blocked lock gets registered by FSAL SAL puts lock on blocked lock > > > list Time passes FSAL makes lock available upcall SAL finds the > > > blocked lock entry in the blocked lock list SAL makes a > > call > > to > > > FSAL to attempt to acquire the lock Assume that fails (in the > > > example, because multiple conflicting locks got > > > notified) > > > SAL puts the lock BACK on the blocked lock list (this step is > > > missing) > > and > > all is > > > well > > > Time passes > > > FSAL makes lock available upcall > > > SAL finds the blocked lock entry in the blocked lock list SAL makes > > > a > > call > > to > > > FSAL to attempt to acquire the lock Lock is granted by FSAL SAL > > > makes > > async > > > call back to client If THAT fails, SAL releases the lock from the > > > FSAL > > and > > > disposes of the lock entry and all is well If THAT succeeds, the > > > lock > is > > > completely granted and all is well > > > > > > I also see that if the client retries the lock before it is granted, > we > > don't > > > remove the lock entry from the blocked lock list... I don't think > > > that > > will ever > > > cause a problem but we should clean that up also... > > > > > > Let me try a patch to fix... > > > > > > Frank > > > > > > > -Original Message- > > > > From: Marc Eshel [mailto:es...@us.ibm.com] > > > > Sent: Tuesday, September 6, 2016 9:34 PM > > > > To: Frank Filz > > > > Cc: 'nfs-ganesha-devel' > > > > Subject: RE: NLM async locking > > > > > > > > Did you get a chance to look at this problem? > > > > Marc. > > > > > > > > > > > > > > > > From: "Frank Filz" > > > > To: Marc Eshel/Almaden/IBM@IBMUS > > > > Cc: "'nfs-ganesha-devel'" > > > > > > Date: 08/29/2016 02:37 PM > > > > Subject:RE: NLM async locking > >
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: NFSv4 Use correct fileid for readdir
>From Frank Filz: Frank Filz has uploaded a new change for review. https://review.gerrithub.io/294597 Change subject: NFSv4 Use correct fileid for readdir .. NFSv4 Use correct fileid for readdir Change-Id: I2aa8a53a5007002dc180841134a3b29d983420a4 Signed-off-by: Frank S. Filz --- M src/Protocols/NFS/nfs4_op_readdir.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/97/294597/1 -- To view, visit https://review.gerrithub.io/294597 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2aa8a53a5007002dc180841134a3b29d983420a4 Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: Frank Filz -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: Fix clock_gettime error handling in ceph_setattr2
>From: jlay...@redhat.com has uploaded a new change for review. https://review.gerrithub.io/294566 Change subject: Fix clock_gettime error handling in ceph_setattr2 .. Fix clock_gettime error handling in ceph_setattr2 Any error there will be in errno, and it is a POSIX call so we want to use posix2fsal_error. Change-Id: I1024a775680df63e5598dc17278b42f1a440acdb Signed-off-by: Jeff Layton --- M src/FSAL/FSAL_CEPH/handle.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/66/294566/1 -- To view, visit https://review.gerrithub.io/294566 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1024a775680df63e5598dc17278b42f1a440acdb Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: jlay...@redhat.com -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] Threading models and the thread fridge
Bill has some ideas and some outstanding (although outdated) work on consolidating and cleaning up the fridge. Bill, can you post a short description of your ideas on that? Daniel On 09/14/2016 12:42 PM, Frank Filz wrote: > While looking at adding a thread to handle NLM blocked lock polling on FSALs > that don't support async blocking locks, I noticed there's a lot of > complexity in the thread fridge and a lot of different users each with their > own pool (some pools with only 1 thread). > > I think it might be worth examining how we use the thread fridge and look > for ways to simplify it, and also make sure we are making the best use of > threads. > > We have a number of uses of a "worker thread" model where a pool of threads > looks on a queue for work to do. One question is if every one of these uses > needs its own queue. The nfs_worker_thread threads probably do benefit from > being their own pool and queue, but do all the other uses. > > Then there are some threads that wake up periodically to do work that is not > exactly queued (the reaper thread for example). It's not clear if these > threads avoid any wakeup at all If there is not any work to be done. > > Then there are some threads that live to sit blocked on some system call to > wait for work to do. These threads particularly don't make sense to be in a > thread pool unless they block intermittently (for example the proposed > threads to actually block on locks). For shutdown purposes, we need to > examine if any of these threads is not able to be cancelled, and also find > the best way to cancel each one (for example, a thread blocking on an fcntl > F_SETLKW can be interrupted with a signal). > > I also wonder if the multi-purpose threads have too many locks. It looks > like fridge has two separate mutexes. > > Typically, when I implement a producer/consumer queue from scratch, I > protect the queue with the same mutex as is paired with the condition > variable used to signal the worker thread(s). Cancelling the thread can > either be accomplished with a separate "cancel" flag (also protected by the > mutex) or a special work item (perhaps put at the head of the queue instead > of the tail, depending on if you want to drain the queue before shutdown or > not). > > Any major changes here are 2.5 items, but it's worth starting a discussion. > > Frank > > > --- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > > > -- > ___ > Nfs-ganesha-devel mailing list > Nfs-ganesha-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel > -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: Fix mtime handling in FSAL_CEPH layoutcommit
>From: jlay...@redhat.com has uploaded a new change for review. https://review.gerrithub.io/294565 Change subject: Fix mtime handling in FSAL_CEPH layoutcommit .. Fix mtime handling in FSAL_CEPH layoutcommit This code only seems to care about the seconds field, but any difference may only be visible in the nsec field. This means we need to switch to clock_gettime() instead of time() as well. Change-Id: Ib8df7085cc5b50463a1674cdf6e8ab8c9d64f97b Signed-off-by: Jeff Layton --- M src/FSAL/FSAL_CEPH/mds.c 1 file changed, 10 insertions(+), 4 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/65/294565/1 -- To view, visit https://review.gerrithub.io/294565 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib8df7085cc5b50463a1674cdf6e8ab8c9d64f97b Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: jlay...@redhat.com -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: Check for NULL fullpath pointer in clean_export_paths
>From: jlay...@redhat.com has uploaded a new change for review. https://review.gerrithub.io/294564 Change subject: Check for NULL fullpath pointer in clean_export_paths .. Check for NULL fullpath pointer in clean_export_paths fullpath can be NULL here, in which case we'll end up with a null pointer dereference. Check for that and treat it the same as an empty path. Change-Id: I5313728efde03cf6e090ad3462a6a2194ac6814f Signed-off-by: Jeff Layton --- M src/support/exports.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/64/294564/1 -- To view, visit https://review.gerrithub.io/294564 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5313728efde03cf6e090ad3462a6a2194ac6814f Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: jlay...@redhat.com -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Threading models and the thread fridge
While looking at adding a thread to handle NLM blocked lock polling on FSALs that don't support async blocking locks, I noticed there's a lot of complexity in the thread fridge and a lot of different users each with their own pool (some pools with only 1 thread). I think it might be worth examining how we use the thread fridge and look for ways to simplify it, and also make sure we are making the best use of threads. We have a number of uses of a "worker thread" model where a pool of threads looks on a queue for work to do. One question is if every one of these uses needs its own queue. The nfs_worker_thread threads probably do benefit from being their own pool and queue, but do all the other uses. Then there are some threads that wake up periodically to do work that is not exactly queued (the reaper thread for example). It's not clear if these threads avoid any wakeup at all If there is not any work to be done. Then there are some threads that live to sit blocked on some system call to wait for work to do. These threads particularly don't make sense to be in a thread pool unless they block intermittently (for example the proposed threads to actually block on locks). For shutdown purposes, we need to examine if any of these threads is not able to be cancelled, and also find the best way to cancel each one (for example, a thread blocking on an fcntl F_SETLKW can be interrupted with a signal). I also wonder if the multi-purpose threads have too many locks. It looks like fridge has two separate mutexes. Typically, when I implement a producer/consumer queue from scratch, I protect the queue with the same mutex as is paired with the condition variable used to signal the worker thread(s). Cancelling the thread can either be accomplished with a separate "cancel" flag (also protected by the mutex) or a special work item (perhaps put at the head of the queue instead of the tail, depending on if you want to drain the queue before shutdown or not). Any major changes here are 2.5 items, but it's worth starting a discussion. Frank --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel