Lines Matching +full:we +full:- +full:on +full:- +full:ns
9 server to reliably handshake to determine if they are on the same
26 But unlike the LOCALIO protocol, the sockaddr-based matching didn't
42 - With LOCALIO:
48 - Without LOCALIO:
55 - With LOCALIO:
61 - Without LOCALIO:
72 a. Workloads where the NFS client and server are on the same host
75 running on the same host as the knfsd server being used for
93 deciding if the NFS client and server are co-located on the same
96 Since one of the main use cases is containerised workloads, we cannot
100 identify that the client and the server really are running on the
103 in shared kernel memory if they are truly co-located.
115 onus on the server to somehow discover that the client is co-located
122 6. Why is having the client perform a server-side file OPEN, without
131 client perform a server-side file open, without using RPC, is ideal.
132 If in the future requirements change then we can adapt accordingly.
140 process. On the other hand, in the case of AUTH_UNIX, the credential
151 as they do for non-LOCALIO.
163 NFS server can see the nonce (single-use UUID) the client generated and
165 standard, nor does it need to be considering it is Linux-to-Linux
174 by IANA, see https://www.iana.org/assignments/rpc-program-numbers/ ):
200 to generate a nonce (single-use UUID) and associated short-lived
204 transfer the nfs_uuid_t from its nfs_uuids to the nn->nfsd_serv
211 access nn->nfsd_serv with proper rcu read access). It is this client
213 objects to span from the host kernel's nfsd to per-container knfsd
214 instances that are connected to nfs client's running on the same local
221 allow proper network namespace (net-ns) and NFSD object refcounting:
223 We don't want to keep a long-term counted reference on each NFSD's
224 net-ns in the client because that prevents a server container from
227 So we avoid taking a reference at all and rely on the per-cpu
229 the net-ns active. This involves allowing the NFSD's net-ns exit
230 code to iterate all active clients and clear their ->net pointers
231 (which are needed to find the per-cpu-refcount for the nfsd_serv).
235 - Embed nfs_uuid_t in nfs_client. nfs_uuid_t provides a list_head
236 that can be used to find the client. It does add the 16-byte
240 If that is really a problem we can find a fix.
242 - When the nfs server confirms that the uuid_t is local, it moves
243 the nfs_uuid_t onto a per-net-ns list in NFSD's nfsd_net.
245 - When each server's net-ns is shutting down - in a "pre_exit"
246 handler, all these nfs_uuid_t have their ->net cleared. There is
248 handlers so any caller that sees nfs_uuid_t ->net as not NULL can
249 safely manage the per-cpu-refcount for nfsd_serv.
251 - The client's nfs_uuid_t is passed to nfsd_open_local_fh() so it
252 can safely dereference ->net in a private rcu_read_lock() section
257 nn->nfsd_serv is not destroyed while in use by nfsd_open_local_fh(), and
262 reference for the nfsd_file and associated nn->nfsd_serv using
265 This interlock working relies heavily on nfsd_open_local_fh() being
267 NFSD's net-ns (and nfsd_net by association) may have been destroyed
268 by nfsd_destroy_serv() via nfsd_shutdown_net() -- which is only
269 possible given the nfs_uuid_t ->net pointer managemenet detailed
276 would go on to crash due to NULL pointer dereference that occurred due
278 nn->nfsd_serv, without having a proper reference on nn->nfsd_serv.
283 Because LOCALIO is focused on protocol bypass to achieve improved IO
294 both the associated nfsd network namespace and nn->nfsd_serv in terms of
296 nfsd objects (be it struct net or nn->nfsd_serv) it returns -ENXIO
325 Localio is only supported when UNIX-style authentication (AUTH_UNIX, aka
335 the server's per-namespace nfsd_net struct. With traditional NFS, the
346 - Client and server both on the same host.
348 - All permutations of client and server support enablement for both
351 - Testing against NFS storage products that don't support the LOCALIO
354 - Client on host, server within a container (for both v3 and v4.2).
358 - Formalizing these test scenarios in terms of existing test
359 infrastructure is on-going. Initial regular coverage is provided in
360 terms of ktest running xfstests against a LOCALIO-enabled NFS loopback
362 https://evilpiepirate.org/~testdashboard/ci?user=snitzer&branch=snitm-nfs-next
365 - Various kdevops testing (in terms of "Chuck's BuildBot") has been
367 regressions to non-LOCALIO NFS use cases.
369 - All of Hammerspace's various sanity tests pass with LOCALIO enabled