summaryrefslogtreecommitdiff
path: root/static/v10/man5/lnode.5
diff options
context:
space:
mode:
Diffstat (limited to 'static/v10/man5/lnode.5')
-rw-r--r--static/v10/man5/lnode.5166
1 files changed, 0 insertions, 166 deletions
diff --git a/static/v10/man5/lnode.5 b/static/v10/man5/lnode.5
deleted file mode 100644
index ea07da47..00000000
--- a/static/v10/man5/lnode.5
+++ /dev/null
@@ -1,166 +0,0 @@
-.TH LNODE 5 SHARE
-.SH NAME
-lnode \- kernel user shares structure
-.SH SYNOPSIS
-.B "#include <sys/lnode.h>"
-.SH DESCRIPTION
-The kernel
-.I lnode
-structure is used to maintain per-user shares while a user has processes running.
-.I Lnodes
-are installed by
-.IR login (8)
-via the
-.IR limits (2)
-system call when a new user logs into the system.
-.I Dead
-lnodes are removed by
-.IR sharer (8)
-when the last process for a user exits.
-The layout as given in the include file is:
-.PP
-.nf
-.ift .ta 1.1i 1.9i
-.ifn .ta 24n 35n
-/*
- * Structure for active shares
- */
-
-typedef short uid_t;
-
-.ift .ta .3i 1.1i 1.9i
-.ifn .ta 2n +10n +13n
-struct lnode
-{
- uid_t l_uid; /* real uid for owner of this node */
- u_short l_flags; /* (see below) */
- u_short l_shares; /* allocated shares */
- uid_t l_group; /* uid for this node's scheduling group */
- float l_usage; /* decaying accumulated costs */
- float l_charge; /* long term accumulated costs */
-};
-
-/*
- * Meaning of bits in l_flags
- */
-
-.ift .ta .6i 1.8i 2.4i
-.ifn .ta +8n +11n +6n
-#define \s-1ACTIVELNODE\s0 001 /* this lnode is on active list */
-#define \s-1LASTREF\s0 002 /* set for L_DEADLIM if last reference to this lnode */
-#define \s-1DEADGROUP\s0 004 /* group account is dead */
-#define \s-1CHNGDLIMITS\s0 020 /* this lnode's limits have changed */
-#define \s-1NOTSHARED\s0 040 /* this lnode does not get a share of the m/c */
-.DT
-.fi
-.PP
-.I Lnodes
-are grouped together in a tree.
-At any level in the tree,
-the share of resources allocated to an individual lnode is that
-proportion of the group's resources
-represented by the ratio of the lnode's shares
-to the total shares of all the lnodes in the group.
-The
-.I l_group
-field represents the
-.I uid
-of the group leader's lnode.
-The top of the tree is represented by
-.IR root 's
-lnode, which is initialised at system boot time.
-.PP
-The
-.SM LASTREF
-bit in
-.I l_flags
-is set for the
-.SM L_DEADLIM
-request to the
-.IR limits (2)
-system call if the last process referencing the
-.I lnode
-has exited.
-The
-.SM DEADGROUP
-bit is set if this
-.I lnode
-was the last one referencing it's group.
-Dead groups are collected via the
-.SM L_DEADGROUP
-request to the
-.IR limits (2)
-system call.
-.PP
-The
-.I l_charge
-field is the long term accumulated charge for consumption of resources.
-For group leaders, it represents the charge for the whole group.
-The
-.I l_usage
-field is a number representing recent usage of resources,
-and is used by the scheduler to determine current share of resources.
-.SS kern_lnode
-Each user's
-.I lnode
-is embedded in a larger structure to hold temporary values for use
-by the scheduler, known as a
-.IR kern_lnode .
-The layout as given in the include file is:
-.PP
-.nf
-.ift .ta 1.9i
-.ifn .ta 28n
-/*
- * Kernel user share structure
- */
-
-typedef struct kern_lnode * KL_p;
-
-.ift .ta .3i 1.1i 1.9i
-.ifn .ta 2n +13n +13n
-struct kern_lnode
-{
- KL_p kl_next; /* next in active list */
- KL_p kl_prev; /* prev in active list */
- KL_p kl_parent; /* group parent */
- KL_p kl_gnext; /* next in parent's group */
- KL_p kl_ghead; /* start of this group */
- struct lnode kl; /* user parameters (as above) */
- float kl_gshares; /* total shares for this group */
- float kl_eshare; /* effective share for this group */
- float kl_norms; /* share**2 for this lnode */
- float kl_usage; /* kl.l_usage / kl_norms */
- float kl_rate; /* active process rate for this lnode */
- float kl_temp; /* temporary for scheduler */
- float kl_spare; /* <spare> */
- u_long kl_cost; /* cost accumulating in current period */
- u_long kl_muse; /* memory pages used */
- u_short kl_refcount; /* processes attached to this lnode */
- u_short kl_children; /* lnodes attached to this lnode */
-};
-.DT
-.fi
-.PP
-Every process has a pointer to its owner's
-.I kern_lnode
-called
-.I p_lnode.
-Every time a process incurs a clock tick,
-the value
-.I p_lnode\->kl_usage
-multipied by
-.I p_lnode\->kl_rate
-is added to its scheduling priority in
-.IR p_sharepri .
-.I p_sharepri
-is decayed by the clock by an amount depending on the process's
-.I p_nice
-value \(em the ``nicer'' the process, the slower the decay.
-This value is copied into the low-level scheduler's priority in
-.I p_pri
-whenever the process is run in user space.
-.SH "SEE ALSO"
-limits(2),
-share(5),
-sharer(8).