X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fvserver%2Flimit.h;h=a7a50f972c4cba9da40bfca4f174fcb1c75f8647;hb=f9296eb00ed30209424102d3c920e69617eea853;hp=ef9c9fc2d75f159d2b881d64f4d355d8c4504051;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/include/linux/vserver/limit.h b/include/linux/vserver/limit.h index ef9c9fc2d..a7a50f972 100644 --- a/include/linux/vserver/limit.h +++ b/include/linux/vserver/limit.h @@ -1,5 +1,3 @@ -/* _VX_LIMIT_H defined below */ - #if defined(__KERNEL__) && defined(_VX_INFO_DEF_) #include @@ -7,26 +5,27 @@ /* context sub struct */ -#define NUM_LIMITS 20 +#define RLIMIT_OPENFD 12 + +#define NUM_RLIMITS 16 -#define VLIMIT_NSOCK 16 +#define VLIMIT_SOCK 16 -extern const char *vlimit_name[NUM_LIMITS]; struct _vx_limit { atomic_t ticks; - unsigned long rlim[NUM_LIMITS]; /* Context limit */ - unsigned long rmax[NUM_LIMITS]; /* Context maximum */ - atomic_t rcur[NUM_LIMITS]; /* Current value */ - atomic_t lhit[NUM_LIMITS]; /* Limit hits */ + unsigned long rlim[NUM_RLIMITS]; /* Context limit */ + unsigned long rmax[NUM_RLIMITS]; /* Context maximum */ + atomic_t rcur[NUM_RLIMITS]; /* Current value */ + atomic_t lhit[NUM_RLIMITS]; /* Limit hits */ }; static inline void vx_info_init_limit(struct _vx_limit *limit) { int lim; - for (lim=0; limrlim[lim] = RLIM_INFINITY; limit->rmax[lim] = 0; atomic_set(&limit->rcur[lim], 0); @@ -34,19 +33,21 @@ static inline void vx_info_init_limit(struct _vx_limit *limit) } } +extern unsigned int vx_debug_limit; + static inline void vx_info_exit_limit(struct _vx_limit *limit) { -#ifdef CONFIG_VSERVER_DEBUG unsigned long value; unsigned int lim; - for (lim=0; limrcur[lim]); if (value) - printk("!!! limit: %p[%s,%d] = %ld on exit.\n", - limit, vlimit_name[lim], lim, value); + printk("!!! limit: %p[%d] = %ld on exit.\n", + limit, lim, value); } -#endif } static inline void vx_limit_fixup(struct _vx_limit *limit) @@ -54,7 +55,7 @@ static inline void vx_limit_fixup(struct _vx_limit *limit) unsigned long value; unsigned int lim; - for (lim=0; limrcur[lim]); if (value > limit->rmax[lim]) limit->rmax[lim] = value; @@ -80,13 +81,13 @@ static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer) "VML" VX_LIMIT_FMT "RSS" VX_LIMIT_FMT "FILES" VX_LIMIT_FMT - "SOCK" VX_LIMIT_FMT + "OFD" VX_LIMIT_FMT VX_LIMIT_ARG(RLIMIT_NPROC) VX_LIMIT_ARG(RLIMIT_AS) VX_LIMIT_ARG(RLIMIT_MEMLOCK) VX_LIMIT_ARG(RLIMIT_RSS) VX_LIMIT_ARG(RLIMIT_NOFILE) - VX_LIMIT_ARG(VLIMIT_NSOCK) + VX_LIMIT_ARG(RLIMIT_OPENFD) ); } @@ -96,8 +97,6 @@ static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer) #include "switch.h" -#define VXD_RLIMIT(r,l) (VXD_CBIT(limit, (l)) && ((r) == (l))) - /* rlimit vserver commands */ #define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0) @@ -139,5 +138,3 @@ void vx_vsi_swapinfo(struct sysinfo *); #endif /* _VX_LIMIT_H */ #endif - -