Date: Fri, 1 Apr 2011 16:32:56 GMT From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 190789 for review Message-ID: <201104011632.p31GWuAF075560@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@190789?ac=10 Change 190789 by trasz@trasz_victim on 2011/03/30 21:02:37 Fix mismerges. Affected files ... .. //depot/projects/soc2009/trasz_limits/etc/rc.d/rctl#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/conf/GENERIC#21 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_systrace_args.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/NOTES#38 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/options#35 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/conf/GENERIC#22 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#17 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_rctl.c#43 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#64 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/jail.h#25 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/racct.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/rctl.h#18 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#17 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/rctl/Makefile#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/rctl/rctl.8#11 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/rctl/rctl.c#7 integrate Differences ... ==== //depot/projects/soc2009/trasz_limits/etc/rc.d/rctl#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD$ +# $FreeBSD: src/etc/rc.d/rctl,v 1.1 2011/03/30 18:32:45 trasz Exp $ # # PROVIDE: rctl @@ -32,7 +32,7 @@ rctl_stop() { - rctl -r :: + rctl -r : } load_rc_config $name ==== //depot/projects/soc2009/trasz_limits/sys/amd64/conf/GENERIC#21 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.552 2011/03/19 15:50:34 bz Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.554 2011/03/29 18:16:49 trasz Exp $ cpu HAMMER ident GENERIC @@ -61,8 +61,8 @@ options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing options MAC # TrustedBSD MAC Framework -options KDTRACE_FRAME # Ensure frames are compiled in -options KDTRACE_HOOKS # Kernel DTrace hooks +#options KDTRACE_FRAME # Ensure frames are compiled in +#options KDTRACE_HOOKS # Kernel DTrace hooks options INCLUDE_CONFIG_FILE # Include this file in kernel # Debugging for use in -current @@ -76,9 +76,6 @@ options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones -options CONTAINERS -options RCTL - # Make an SMP-capable kernel by default options SMP # Symmetric MultiProcessor Kernel ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_proto.h#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.118 2011/03/05 12:46:24 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 219304 2011-03-05 12:40:35Z trasz + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.120 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -240,6 +240,10 @@ char modid_l_[PADL_(int)]; int modid; char modid_r_[PADR_(int)]; char stat_l_[PADL_(struct module_stat32 *)]; struct module_stat32 * stat; char stat_r_[PADR_(struct module_stat32 *)]; }; +struct freebsd32_kldstat_args { + char fileid_l_[PADL_(int)]; int fileid; char fileid_r_[PADR_(int)]; + char stat_l_[PADL_(struct kld32_file_stat *)]; struct kld32_file_stat * stat; char stat_r_[PADR_(struct kld32_file_stat *)]; +}; struct freebsd32_aio_return_args { char aiocbp_l_[PADL_(struct aiocb32 *)]; struct aiocb32 * aiocbp; char aiocbp_r_[PADR_(struct aiocb32 *)]; }; @@ -607,6 +611,7 @@ int freebsd32_preadv(struct thread *, struct freebsd32_preadv_args *); int freebsd32_pwritev(struct thread *, struct freebsd32_pwritev_args *); int freebsd32_modstat(struct thread *, struct freebsd32_modstat_args *); +int freebsd32_kldstat(struct thread *, struct freebsd32_kldstat_args *); int freebsd32_aio_return(struct thread *, struct freebsd32_aio_return_args *); int freebsd32_aio_suspend(struct thread *, struct freebsd32_aio_suspend_args *); int freebsd32_aio_cancel(struct thread *, struct freebsd32_aio_cancel_args *); @@ -939,6 +944,7 @@ #define FREEBSD32_SYS_AUE_freebsd32_pwritev AUE_PWRITEV #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_fhstatfs AUE_FHSTATFS #define FREEBSD32_SYS_AUE_freebsd32_modstat AUE_NULL +#define FREEBSD32_SYS_AUE_freebsd32_kldstat AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_aio_return AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_aio_suspend AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_aio_cancel AUE_NULL ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscall.h#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.132 2010/06/28 18:06:46 kib Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.116 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ #define FREEBSD32_SYS_syscall 0 @@ -234,7 +234,7 @@ #define FREEBSD32_SYS_kldunload 305 #define FREEBSD32_SYS_kldfind 306 #define FREEBSD32_SYS_kldnext 307 -#define FREEBSD32_SYS_kldstat 308 +#define FREEBSD32_SYS_freebsd32_kldstat 308 #define FREEBSD32_SYS_kldfirstmod 309 #define FREEBSD32_SYS_getsid 310 #define FREEBSD32_SYS_setresuid 311 @@ -414,7 +414,7 @@ #define FREEBSD32_SYS_freebsd32_pselect 522 #define FREEBSD32_SYS_getloginclass 523 #define FREEBSD32_SYS_setloginclass 524 -#define FREEBSD32_SYS_rctl_get_usage 525 +#define FREEBSD32_SYS_rctl_get_racct 525 #define FREEBSD32_SYS_rctl_get_rules 526 #define FREEBSD32_SYS_rctl_get_limits 527 #define FREEBSD32_SYS_rctl_add_rule 528 ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_syscalls.c#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.132 2010/06/28 18:06:46 kib Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.107 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ const char *freebsd32_syscallnames[] = { @@ -318,7 +318,7 @@ "kldunload", /* 305 = kldunload */ "kldfind", /* 306 = kldfind */ "kldnext", /* 307 = kldnext */ - "kldstat", /* 308 = kldstat */ + "freebsd32_kldstat", /* 308 = freebsd32_kldstat */ "kldfirstmod", /* 309 = kldfirstmod */ "getsid", /* 310 = getsid */ "setresuid", /* 311 = setresuid */ @@ -548,7 +548,7 @@ "freebsd32_pselect", /* 522 = freebsd32_pselect */ "getloginclass", /* 523 = getloginclass */ "setloginclass", /* 524 = setloginclass */ - "rctl_get_usage", /* 525 = rctl_get_usage */ + "rctl_get_racct", /* 525 = rctl_get_racct */ "rctl_get_rules", /* 526 = rctl_get_rules */ "rctl_get_limits", /* 527 = rctl_get_limits */ "rctl_add_rule", /* 528 = rctl_add_rule */ ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_sysent.c#15 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.132 2010/06/28 18:06:46 kib Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.118 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ #include "opt_compat.h" @@ -355,7 +355,7 @@ { AS(kldunload_args), (sy_call_t *)kldunload, AUE_MODUNLOAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 305 = kldunload */ { AS(kldfind_args), (sy_call_t *)kldfind, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 306 = kldfind */ { AS(kldnext_args), (sy_call_t *)kldnext, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 307 = kldnext */ - { AS(kldstat_args), (sy_call_t *)kldstat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 308 = kldstat */ + { AS(freebsd32_kldstat_args), (sy_call_t *)freebsd32_kldstat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 308 = freebsd32_kldstat */ { AS(kldfirstmod_args), (sy_call_t *)kldfirstmod, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 309 = kldfirstmod */ { AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 310 = getsid */ { AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 311 = setresuid */ @@ -585,7 +585,7 @@ { AS(freebsd32_pselect_args), (sy_call_t *)freebsd32_pselect, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 522 = freebsd32_pselect */ { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 523 = getloginclass */ { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 524 = setloginclass */ - { AS(rctl_get_usage_args), (sy_call_t *)rctl_get_usage, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = rctl_get_usage */ + { AS(rctl_get_racct_args), (sy_call_t *)rctl_get_racct, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = rctl_get_racct */ { AS(rctl_get_rules_args), (sy_call_t *)rctl_get_rules, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 526 = rctl_get_rules */ { AS(rctl_get_limits_args), (sy_call_t *)rctl_get_limits, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 527 = rctl_get_limits */ { AS(rctl_add_rule_args), (sy_call_t *)rctl_add_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 528 = rctl_add_rule */ ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_systrace_args.c#2 (text+ko) ==== @@ -2,7 +2,7 @@ * System call argument to DTrace register array converstion. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_systrace_args.c,v 1.1 2011/03/12 08:58:19 avg Exp $ + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_systrace_args.c,v 1.3 2011/03/30 17:59:54 trasz Exp $ * This file is part of the DTrace syscall provider. */ @@ -1428,11 +1428,11 @@ *n_args = 1; break; } - /* kldstat */ + /* freebsd32_kldstat */ case 308: { - struct kldstat_args *p = params; + struct freebsd32_kldstat_args *p = params; iarg[0] = p->fileid; /* int */ - uarg[1] = (intptr_t) p->stat; /* struct kld_file_stat * */ + uarg[1] = (intptr_t) p->stat; /* struct kld32_file_stat * */ *n_args = 2; break; } @@ -2957,6 +2957,56 @@ *n_args = 1; break; } + /* rctl_get_racct */ + case 525: { + struct rctl_get_racct_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* rctl_get_rules */ + case 526: { + struct rctl_get_rules_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* rctl_get_limits */ + case 527: { + struct rctl_get_limits_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* rctl_add_rule */ + case 528: { + struct rctl_add_rule_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } + /* rctl_remove_rule */ + case 529: { + struct rctl_remove_rule_args *p = params; + uarg[0] = (intptr_t) p->inbufp; /* const void * */ + uarg[1] = p->inbuflen; /* size_t */ + uarg[2] = (intptr_t) p->outbufp; /* void * */ + uarg[3] = p->outbuflen; /* size_t */ + *n_args = 4; + break; + } default: *n_args = 0; break; @@ -5217,14 +5267,14 @@ break; }; break; - /* kldstat */ + /* freebsd32_kldstat */ case 308: switch(ndx) { case 0: p = "int"; break; case 1: - p = "struct kld_file_stat *"; + p = "struct kld32_file_stat *"; break; default: break; @@ -7873,6 +7923,101 @@ break; }; break; + /* rctl_get_racct */ + case 525: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; + break; + default: + break; + }; + break; + /* rctl_get_rules */ + case 526: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; + break; + default: + break; + }; + break; + /* rctl_get_limits */ + case 527: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; + break; + default: + break; + }; + break; + /* rctl_add_rule */ + case 528: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; + break; + default: + break; + }; + break; + /* rctl_remove_rule */ + case 529: + switch(ndx) { + case 0: + p = "const void *"; + break; + case 1: + p = "size_t"; + break; + case 2: + p = "void *"; + break; + case 3: + p = "size_t"; + break; + default: + break; + }; + break; default: break; }; ==== //depot/projects/soc2009/trasz_limits/sys/conf/NOTES#38 (text+ko) ==== @@ -1161,12 +1161,6 @@ # Support for Capsicum options CAPABILITIES -# Resource Accounting -options RACCT - -# Resource Limits -options RCTL - ##################################################################### # CLOCK OPTIONS ==== //depot/projects/soc2009/trasz_limits/sys/conf/options#35 (text+ko) ==== @@ -883,3 +883,4 @@ # that "lies" about the amount of RAM it has. Until a cleaner method is # defined, this option will suffice in overriding what Redboot says. AR71XX_REALMEM opt_global.h + ==== //depot/projects/soc2009/trasz_limits/sys/i386/conf/GENERIC#22 (text+ko) ==== @@ -76,9 +76,6 @@ options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones -options CONTAINERS -options RCTL - # To make an SMP kernel, the next two lines are needed options SMP # Symmetric MultiProcessor Kernel device apic # I/O APIC ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#17 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.265 2010/08/30 14:24:44 kib Exp + * $FreeBSD: src/sys/kern/init_sysent.c,v 1.260 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ #include "opt_compat.h" @@ -559,7 +559,7 @@ { AS(pselect_args), (sy_call_t *)pselect, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 522 = pselect */ { AS(getloginclass_args), (sy_call_t *)getloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 523 = getloginclass */ { AS(setloginclass_args), (sy_call_t *)setloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 524 = setloginclass */ - { AS(rctl_get_usage_args), (sy_call_t *)rctl_get_usage, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = rctl_get_usage */ + { AS(rctl_get_racct_args), (sy_call_t *)rctl_get_racct, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 525 = rctl_get_racct */ { AS(rctl_get_rules_args), (sy_call_t *)rctl_get_rules, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 526 = rctl_get_rules */ { AS(rctl_get_limits_args), (sy_call_t *)rctl_get_limits, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 527 = rctl_get_limits */ { AS(rctl_add_rule_args), (sy_call_t *)rctl_add_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 528 = rctl_add_rule */ ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_rctl.c#43 (text+ko) ==== @@ -26,11 +26,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/kern/kern_rctl.c,v 1.1 2011/03/30 17:48:15 trasz Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/kern/kern_rctl.c,v 1.1 2011/03/30 17:48:15 trasz Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -1126,25 +1126,29 @@ if (rule->rr_subject.rs_proc == NULL) sbuf_printf(sb, ":"); else - sbuf_printf(sb, "%d:", rule->rr_subject.rs_proc->p_pid); + sbuf_printf(sb, "%d:", + rule->rr_subject.rs_proc->p_pid); break; case RCTL_SUBJECT_TYPE_USER: if (rule->rr_subject.rs_uip == NULL) sbuf_printf(sb, ":"); else - sbuf_printf(sb, "%d:", rule->rr_subject.rs_uip->ui_uid); + sbuf_printf(sb, "%d:", + rule->rr_subject.rs_uip->ui_uid); break; case RCTL_SUBJECT_TYPE_LOGINCLASS: if (rule->rr_subject.hr_loginclass == NULL) sbuf_printf(sb, ":"); else - sbuf_printf(sb, "%s:", rule->rr_subject.hr_loginclass->lc_name); + sbuf_printf(sb, "%s:", + rule->rr_subject.hr_loginclass->lc_name); break; case RCTL_SUBJECT_TYPE_JAIL: if (rule->rr_subject.rs_prison == NULL) sbuf_printf(sb, ":"); else - sbuf_printf(sb, "%s:", rule->rr_subject.rs_prison->pr_name); + sbuf_printf(sb, "%s:", + rule->rr_subject.rs_prison->pr_name); break; default: panic("rctl_rule_to_sbuf: unknown subject type %d", @@ -1372,7 +1376,8 @@ * Non-process rules will be added to the buffer later. * Adding them here would result in duplicated output. */ - if (link->rrl_rule->rr_subject_type != RCTL_SUBJECT_TYPE_PROCESS) + if (link->rrl_rule->rr_subject_type != + RCTL_SUBJECT_TYPE_PROCESS) continue; if (!rctl_rule_matches(link->rrl_rule, filter)) continue; @@ -1460,7 +1465,8 @@ KASSERT(sb != NULL, ("sbuf_new failed")); rw_rlock(&rctl_lock); - LIST_FOREACH(link, &filter->rr_subject.rs_proc->p_racct->r_rule_links, rrl_next) { + LIST_FOREACH(link, &filter->rr_subject.rs_proc->p_racct->r_rule_links, + rrl_next) { rctl_rule_to_sbuf(sb, link->rrl_rule); sbuf_printf(sb, ","); } @@ -1735,24 +1741,27 @@ rw_wlock(&rctl_lock); /* - * Go through limits applicable to the parent and assign them to the child. - * Rules with 'process' subject have to be duplicated in order to make their - * rr_subject point to the new process. + * Go through limits applicable to the parent and assign them + * to the child. Rules with 'process' subject have to be duplicated + * in order to make their rr_subject point to the new process. */ LIST_FOREACH(link, &parent->p_racct->r_rule_links, rrl_next) { - if (link->rrl_rule->rr_subject_type == RCTL_SUBJECT_TYPE_PROCESS) { + if (link->rrl_rule->rr_subject_type == + RCTL_SUBJECT_TYPE_PROCESS) { rule = rctl_rule_duplicate(link->rrl_rule, M_NOWAIT); if (rule == NULL) goto fail; KASSERT(rule->rr_subject.rs_proc == parent, ("rule->rr_subject.rs_proc != parent")); rule->rr_subject.rs_proc = child; - error = rctl_racct_add_rule_locked(child->p_racct, rule); + error = rctl_racct_add_rule_locked(child->p_racct, + rule); rctl_rule_release(rule); if (error != 0) goto fail; } else { - error = rctl_racct_add_rule_locked(child->p_racct, link->rrl_rule); + error = rctl_racct_add_rule_locked(child->p_racct, + link->rrl_rule); if (error != 0) goto fail; } @@ -1794,8 +1803,9 @@ rctl_init(void) { - rctl_rule_link_zone = uma_zcreate("rctl_rule_link", sizeof(struct rctl_rule_link), - NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + rctl_rule_link_zone = uma_zcreate("rctl_rule_link", + sizeof(struct rctl_rule_link), NULL, NULL, NULL, NULL, + UMA_ALIGN_PTR, UMA_ZONE_NOFREE); rctl_rule_zone = uma_zcreate("rctl_rule", sizeof(struct rctl_rule), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#64 (text+ko) ==== @@ -57,7 +57,6 @@ #include <sys/sx.h> #include <sys/syscallsubr.h> #include <sys/sysent.h> -#include <sys/taskqueue.h> #include <sys/time.h> #include <sys/umtx.h> ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.265 2010/08/30 14:24:44 kib Exp + * $FreeBSD: src/sys/kern/syscalls.c,v 1.243 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ const char *syscallnames[] = { @@ -532,7 +532,7 @@ "pselect", /* 522 = pselect */ "getloginclass", /* 523 = getloginclass */ "setloginclass", /* 524 = setloginclass */ - "rctl_get_usage", /* 525 = rctl_get_usage */ + "rctl_get_racct", /* 525 = rctl_get_racct */ "rctl_get_rules", /* 526 = rctl_get_rules */ "rctl_get_limits", /* 527 = rctl_get_limits */ "rctl_add_rule", /* 528 = rctl_add_rule */ ==== //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#15 (text+ko) ==== @@ -2,7 +2,7 @@ * System call argument to DTrace register array converstion. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ + * $FreeBSD: src/sys/kern/systrace_args.c,v 1.39 2011/03/30 17:59:54 trasz Exp $ * This file is part of the DTrace syscall provider. */ @@ -3135,9 +3135,9 @@ *n_args = 1; break; } - /* rctl_get_usage */ + /* rctl_get_racct */ case 525: { - struct rctl_get_usage_args *p = params; + struct rctl_get_racct_args *p = params; uarg[0] = (intptr_t) p->inbufp; /* const void * */ uarg[1] = p->inbuflen; /* size_t */ uarg[2] = (intptr_t) p->outbufp; /* void * */ @@ -8378,7 +8378,7 @@ break; }; break; - /* rctl_get_usage */ + /* rctl_get_racct */ case 525: switch(ndx) { case 0: ==== //depot/projects/soc2009/trasz_limits/sys/sys/jail.h#25 (text+ko) ==== @@ -341,7 +341,6 @@ struct mount; struct sockaddr; struct statfs; -struct racct; int jailed(struct ucred *cred); int jailed_without_vnet(struct ucred *); void getcredhostname(struct ucred *, char *, size_t); ==== //depot/projects/soc2009/trasz_limits/sys/sys/racct.h#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/sys/racct.h,v 1.1 2011/03/29 17:47:25 trasz Exp $ */ /* ==== //depot/projects/soc2009/trasz_limits/sys/sys/rctl.h#18 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/sys/rctl.h,v 1.1 2011/03/30 17:48:15 trasz Exp $ */ /* @@ -139,7 +139,6 @@ void rctl_rule_release(struct rctl_rule *rule); int rctl_rule_add(struct rctl_rule *rule); int rctl_rule_remove(struct rctl_rule *filter); - int rctl_enforce(struct proc *p, int resource, uint64_t amount); uint64_t rctl_get_limit(struct proc *p, int resource); uint64_t rctl_get_available(struct proc *p, int resource); @@ -153,11 +152,16 @@ * Syscall interface. */ __BEGIN_DECLS -int rctl_get_racct(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); -int rctl_get_rules(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); -int rctl_get_limits(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); -int rctl_add_rule(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); -int rctl_remove_rule(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); +int rctl_get_racct(const char *inbufp, size_t inbuflen, char *outbufp, + size_t outbuflen); +int rctl_get_rules(const char *inbufp, size_t inbuflen, char *outbufp, + size_t outbuflen); +int rctl_get_limits(const char *inbufp, size_t inbuflen, char *outbufp, + size_t outbuflen); +int rctl_add_rule(const char *inbufp, size_t inbuflen, char *outbufp, + size_t outbuflen); +int rctl_remove_rule(const char *inbufp, size_t inbuflen, char *outbufp, + size_t outbuflen); __END_DECLS #endif /* !_KERNEL */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.265 2010/08/30 14:24:44 kib Exp + * $FreeBSD: src/sys/sys/syscall.h,v 1.240 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ #define SYS_syscall 0 @@ -435,7 +435,7 @@ #define SYS_pselect 522 #define SYS_getloginclass 523 #define SYS_setloginclass 524 -#define SYS_rctl_get_usage 525 +#define SYS_rctl_get_racct 525 #define SYS_rctl_get_rules 526 #define SYS_rctl_get_limits 527 #define SYS_rctl_add_rule 528 ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#16 (text+ko) ==== @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. -# $FreeBSD$ -# created from FreeBSD: src/sys/kern/syscalls.master,v 1.265 2010/08/30 14:24:44 kib Exp +# $FreeBSD: src/sys/sys/syscall.mk,v 1.195 2011/03/30 17:59:54 trasz Exp $ +# created from FreeBSD: head/sys/kern/syscalls.master 220163 2011-03-30 17:48:15Z trasz MIASM = \ syscall.o \ exit.o \ @@ -384,7 +384,7 @@ pselect.o \ getloginclass.o \ setloginclass.o \ - rctl_get_usage.o \ + rctl_get_racct.o \ rctl_get_rules.o \ rctl_get_limits.o \ rctl_add_rule.o \ ==== //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#17 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD$ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.265 2010/08/30 14:24:44 kib Exp + * $FreeBSD: src/sys/sys/sysproto.h,v 1.247 2011/03/30 17:59:54 trasz Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 220163 2011-03-30 17:48:15Z trasz */ #ifndef _SYS_SYSPROTO_H_ @@ -1678,7 +1678,7 @@ struct setloginclass_args { char namebuf_l_[PADL_(const char *)]; const char * namebuf; char namebuf_r_[PADR_(const char *)]; }; -struct rctl_get_usage_args { +struct rctl_get_racct_args { char inbufp_l_[PADL_(const void *)]; const void * inbufp; char inbufp_r_[PADR_(const void *)]; char inbuflen_l_[PADL_(size_t)]; size_t inbuflen; char inbuflen_r_[PADR_(size_t)]; char outbufp_l_[PADL_(void *)]; void * outbufp; char outbufp_r_[PADR_(void *)]; @@ -2073,7 +2073,7 @@ int pselect(struct thread *, struct pselect_args *); int getloginclass(struct thread *, struct getloginclass_args *); int setloginclass(struct thread *, struct setloginclass_args *); -int rctl_get_usage(struct thread *, struct rctl_get_usage_args *); +int rctl_get_racct(struct thread *, struct rctl_get_racct_args *); int rctl_get_rules(struct thread *, struct rctl_get_rules_args *); int rctl_get_limits(struct thread *, struct rctl_get_limits_args *); int rctl_add_rule(struct thread *, struct rctl_add_rule_args *); @@ -2757,7 +2757,7 @@ #define SYS_AUE_pselect AUE_SELECT #define SYS_AUE_getloginclass AUE_NULL #define SYS_AUE_setloginclass AUE_NULL -#define SYS_AUE_rctl_get_usage AUE_NULL +#define SYS_AUE_rctl_get_racct AUE_NULL #define SYS_AUE_rctl_get_rules AUE_NULL #define SYS_AUE_rctl_get_limits AUE_NULL #define SYS_AUE_rctl_add_rule AUE_NULL ==== //depot/projects/soc2009/trasz_limits/usr.bin/rctl/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD$ +# $FreeBSD: src/usr.bin/rctl/Makefile,v 1.1 2011/03/30 18:27:52 trasz Exp $ PROG= rctl MAN= rctl.8 ==== //depot/projects/soc2009/trasz_limits/usr.bin/rctl/rctl.8#11 (text+ko) ==== @@ -23,9 +23,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD$ +.\" $FreeBSD: src/usr.bin/rctl/rctl.8,v 1.2 2011/03/30 20:13:55 trasz Exp $ .\" -.Dd February 13, 2011 +.Dd March 30, 2011 .Dt RCTL 8 .Os .Sh NAME @@ -105,7 +105,7 @@ up to 100MB of virtual memory. Rule "loginclass:users:vmem:deny=100M/user" would mean that for each user belonging to the login class "users", the sum of virtual memory allocated -by all the processes of a that user will not exceed 100MB. +by all the processes of that user will not exceed 100MB. Rule "loginclass:users:vmem:deny=100M/loginclass" would mean that the sum of virtual memory allocated by all processes of all users belonging to that login class will not exceed 100MB. ==== //depot/projects/soc2009/trasz_limits/usr.bin/rctl/rctl.c#7 (text+ko) ==== @@ -26,11 +26,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/usr.bin/rctl/rctl.c,v 1.1 2011/03/30 18:27:52 trasz Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/usr.bin/rctl/rctl.c,v 1.1 2011/03/30 18:27:52 trasz Exp $"); #include <sys/types.h> #include <sys/rctl.h> @@ -173,9 +173,11 @@ err(1, "expand_number"); if (per == NULL) - asprintf(&expanded, "%s:%s:%s:%s=%ju", subject, subject_id, resource, action, (uintmax_t)num); + asprintf(&expanded, "%s:%s:%s:%s=%ju", subject, subject_id, + resource, action, (uintmax_t)num); else - asprintf(&expanded, "%s:%s:%s:%s=%ju/%s", subject, subject_id, resource, action, (uintmax_t)num, per); + asprintf(&expanded, "%s:%s:%s:%s=%ju/%s", subject, subject_id, + resource, action, (uintmax_t)num, per); if (expanded == NULL) err(1, "asprintf"); @@ -255,7 +257,8 @@ amount = strsep(©, "/"); per = copy; - if (amount == NULL || strlen(amount) == 0 || str2int64(amount, &num) != 0) { + if (amount == NULL || strlen(amount) == 0 || + str2int64(amount, &num) != 0) { free(copy); return (rule); } @@ -265,13 +268,16 @@ assert(resource != NULL); assert(action != NULL); - if (humanize_number(buf, sizeof(buf), num, "", HN_AUTOSCALE, HN_DECIMAL | HN_NOSPACE) == -1) + if (humanize_number(buf, sizeof(buf), num, "", HN_AUTOSCALE, + HN_DECIMAL | HN_NOSPACE) == -1) err(1, "humanize_number"); if (per == NULL) - asprintf(&humanized, "%s:%s:%s:%s=%s", subject, subject_id, resource, action, buf); + asprintf(&humanized, "%s:%s:%s:%s=%s", subject, subject_id, + resource, action, buf); else - asprintf(&humanized, "%s:%s:%s:%s=%s/%s", subject, subject_id, resource, action, buf, per); + asprintf(&humanized, "%s:%s:%s:%s=%s/%s", subject, subject_id, + resource, action, buf, per); if (humanized == NULL) err(1, "asprintf"); @@ -322,7 +328,8 @@ if (outbuf == NULL) err(1, "realloc"); - error = rctl_get_limits(filter, strlen(filter) + 1, outbuf, outbuflen); + error = rctl_get_limits(filter, strlen(filter) + 1, outbuf, + outbuflen); if (error && errno != ERANGE) err(1, "rctl_get_limits"); } while (error && errno == ERANGE); @@ -361,7 +368,8 @@ assert(amount != NULL); if (str2int64(amount, &num) != 0 || - humanize_number(buf, sizeof(buf), num, "", HN_AUTOSCALE, HN_DECIMAL | HN_NOSPACE) == -1) { + humanize_number(buf, sizeof(buf), num, "", HN_AUTOSCALE, + HN_DECIMAL | HN_NOSPACE) == -1) { free(copy); return (usage); } @@ -389,7 +397,8 @@ if (outbuf == NULL) err(1, "realloc"); - error = rctl_get_racct(filter, strlen(filter) + 1, outbuf, outbuflen); + error = rctl_get_racct(filter, strlen(filter) + 1, outbuf, + outbuflen); if (error && errno != ERANGE) err(1, "rctl_get_racct"); } while (error && errno == ERANGE); @@ -429,7 +438,7 @@ if (outbuf == NULL) err(1, "realloc"); - error = rctl_get_rules(filter, filterlen, outbuf, outbuflen); + error = rctl_get_rules(filter, filterlen, outbuf, outbuflen); if (error && errno != ERANGE) err(1, "rctl_get_rules"); } while (error && errno == ERANGE); @@ -442,7 +451,8 @@ usage(void) { - fprintf(stderr, "usage: rctl [ -h ] [-a rule | -l filter | -r filter | -u filter | filter]\n"); + fprintf(stderr, "usage: rctl [ -h ] [-a rule | -l filter | -r filter " + "| -u filter | filter]\n"); exit(1); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104011632.p31GWuAF075560>