Lines Matching defs:mark
108 struct ip_vs_wrr_mark *mark;
111 * Allocate the mark variable for WRR scheduling
113 mark = kmalloc(sizeof(struct ip_vs_wrr_mark), GFP_KERNEL);
114 if (mark == NULL)
117 mark->cl = list_entry(&svc->destinations, struct ip_vs_dest, n_list);
118 mark->di = ip_vs_wrr_gcd_weight(svc);
119 mark->mw = ip_vs_wrr_max_weight(svc) - (mark->di - 1);
120 mark->cw = mark->mw;
121 svc->sched_data = mark;
129 struct ip_vs_wrr_mark *mark = svc->sched_data;
132 * Release the mark variable
134 kfree_rcu(mark, rcu_head);
141 struct ip_vs_wrr_mark *mark = svc->sched_data;
144 mark->cl = list_entry(&svc->destinations, struct ip_vs_dest, n_list);
145 mark->di = ip_vs_wrr_gcd_weight(svc);
146 mark->mw = ip_vs_wrr_max_weight(svc) - (mark->di - 1);
147 if (mark->cw > mark->mw || !mark->cw)
148 mark->cw = mark->mw;
149 else if (mark->di > 1)
150 mark->cw = (mark->cw / mark->di) * mark->di + 1;
164 struct ip_vs_wrr_mark *mark = svc->sched_data;
170 dest = mark->cl;
172 if (mark->mw == 0)
181 atomic_read(&dest->weight) >= mark->cw)
186 mark->cw -= mark->di;
187 if (mark->cw <= 0) {
188 mark->cw = mark->mw;
200 last_pass = mark->cw <= mark->di;
218 mark->cl = dest;
225 mark->cl = dest;
231 mark->cl = dest;