MCPcopy Create free account
hub / github.com/F-Stack/f-stack / racct_sub_racct

Function racct_sub_racct

freebsd/kern/kern_racct.c:423–452  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

421}
422
423static void
424racct_sub_racct(struct racct *dest, const struct racct *src)
425{
426 int i;
427
428 ASSERT_RACCT_ENABLED();
429 RACCT_LOCK_ASSERT();
430
431 /*
432 * Update resource usage in dest.
433 */
434 for (i = 0; i <= RACCT_MAX; i++) {
435 if (!RACCT_IS_SLOPPY(i) && !RACCT_IS_DECAYING(i)) {
436 KASSERT(dest->r_resources[i] >= 0,
437 ("%s: resource %d propagation meltdown: dest < 0",
438 __func__, i));
439 KASSERT(src->r_resources[i] >= 0,
440 ("%s: resource %d propagation meltdown: src < 0",
441 __func__, i));
442 KASSERT(src->r_resources[i] <= dest->r_resources[i],
443 ("%s: resource %d propagation meltdown: src > dest",
444 __func__, i));
445 }
446 if (RACCT_CAN_DROP(i)) {
447 dest->r_resources[i] -= src->r_resources[i];
448 if (dest->r_resources[i] < 0)
449 dest->r_resources[i] = 0;
450 }
451 }
452}
453
454void
455racct_create(struct racct **racctp)

Callers 2

racct_proc_ucred_changedFunction · 0.85
racct_moveFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected