Look for Linux xattrs in sys.

The location in attr is deprecated, and the sys location looks
safe at least back through RHEL 5.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Remove the fridge 1.5.

The thread fridge is removed on newapi.  Remove it here so that
a commit restoring and updating it applies to both branches.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Restore updated thread fridge.

The thread fridge is now a thread pool ADT, without static
data.  Most other details are currently carried forward from
the original fridge.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add glist_splice_tail.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Lookahead 1.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Track tirpc xp_getargs change, deadlock hotfix attempt.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/tirpc.sh

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Inverted dispatch model prototype.

In the new model, developed with input from Bruce Lucas (IBM),
request decoding is again decoupled from the worker pool.  A new
style dynamic pool of decoder threads servicing all connections
replaces the original thread-per-connection decoders.  New requests
are inserted in a global (priority) queue, sorted by a new lookahead
classification (nod to Philippe, Jim).  The queue structure is likely
to see some adjustment, but does provide new prioritization (mount,
call, high and low latency) behavior, as discussed in the development
call.

Currently, resource consumption is constrained by two decoded request
quotas, one global, and one per-xprt.  If the global limit is reached,
event threads are delayed until it clears.  If a per-xprt limit is
reached, the affected xprt is 'stalled'--i.e., is unregistered from its
event channel, and added to a queue of stalled xprts, until it clears
or idles out (or is otherwise destroyed).  When the stall queue is
non-empty, a thread from the decoder fridge is dispatched to periodically
scan and unstall cleared xprts.  (Not to Boaz, Brent.  Feedback
appreciated.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/MainNFSD/nfs_worker_thread.c
	src/config_samples/pt.ganesha.nfsd.conf

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Invert dispatch cleanups and fixes 1.

In addition to general polish, includes fixes for xprt
refcnt leak, leaked fridge mutex in fridgethr_star_routine.
Fix leak of worker 0, due to accidental edit.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Incremental dispatch.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Aiee!  Dont leak sp.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Fix wakeup check at SyncDone.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Simplify out REQ_Q_MOUNT slot.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Simplify queue locking some more.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/MainNFSD/nfs_rpc_dispatcher_thread.c

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Restore wait logic in fridgethr.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Swot handoff flag logic.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Incremental dispatch.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Incremental dispatcher cleanup with some testing artifacts
(e.g., #if sections, inlcuding simplified dispatcher queue
for perf. baseline).

The most important change is to track TI-RPC switch to
EPOLLONESHOT style event handling.  The oneshot style gives
atomicity, and the inline call to gsh_destroy_xprt on xprt
error now -appears- safe.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/MainNFSD/nfs_worker_thread.c

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Patch to make this compile.

Signed-off-by: Venkateswararao Jujjuri "<jvrao@linux.vnet.ibm.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Fix MNT fallthrough

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Normalize delays in dispatcher hot path, to 5ms.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Split slot spinlock.  Bump TI-RPC version.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/tirpc.sh

Signed-off-by: Matt Benjamin <matt@linuxbox.com>