Lines Matching refs:and

6 be used, its interface specification, design, implementation and
29 special resources and mechanisms to maintain these "threads". The Linux
30 kernel, in a clever and simple manner, does not make distinction
31 between processes and "threads". The kernel allows processes to share
32 resources and thus they can achieve legacy "threads" behavior without
33 requiring additional data structures and mechanisms in the kernel. The
65 such as per-user and/or per-security context instance of /tmp, /var/tmp or
72 can benefit from setting up private namespaces at login and
73 polyinstantiating /tmp, /var/tmp and other directories deemed
76 2.2 unsharing of virtual memory and/or open files
80 virtual memory and open files. Without unshare, the server has to
84 request. For large and complex middleware application frameworks, this
90 In order to not duplicate code and to handle the fact that unshare
94 There is a cost associated with altering existing, well tested and
96 extensively in the beginning. However, with proper design and code
97 review of the changes and creation of an unshare test for the LTP
108 However, there was no easy solution that was less confusing and that
113 If and when new context flags are added, unshare design should allow
159 On success, zero returned. On failure, -1 is returned and errno is
171 The unshare() call is Linux-specific and should not be used
182 with the current task structure and releases corresponding shared
189 2) unshare has to allocate and duplicate all context structures
191 current task and releasing older shared structures. Failure
192 do so will create race conditions and/or oops when trying
194 both virtual memory and namespace. After successfully unsharing
201 Therefore code from copy_* functions that allocated and duplicated
203 copy_* functions call dup_* functions to allocate and duplicate
204 appropriate context structures and then associate them with the
209 helper function to allocate and duplicate a new context
211 3) If there is no error in allocation and duplication and there
214 and release the lock on the current task structure.
229 and duplicated the appropriate structure and the second component
232 These dup_* functions allocated and duplicated the appropriate
234 their corresponding dup_* functions and then linked the newly
242 set and signals are also being shared, force CLONE_THREAD. If
245 helper routine with flags passed into the system call and a
249 modify appropriate context pointers, and release the
256 and CLONE_THREAD, return -EINVAL since they are not implemented yet.
259 dup_* function to allocate and duplicate the structure and return
268 1) Valid flags: Test to check that clone flags for signal and
273 unshares both namespace and filesystem information.
274 3) For each of the four (namespace, filesystem, files and vm)
279 4) Concurrent execution: Use shared memory segments and futex on
282 a couple _exit and the rest unshare with different combination
283 of flags. Verify that unsharing is performed as expected and
289 signals and signal handlers. Signals are complex to begin with and
290 to unshare signals and/or signal handlers of a currently running
292 need to allow unsharing of signals and/or signal handlers, it can