X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=kernel%2Fvserver%2Flimit_proc.h;h=5304816ada5a63729cea850de4286061161062ee;hb=refs%2Fheads%2Fvserver;hp=f3182776cf5cbfd45575a721b5d2ac1876cca05d;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/kernel/vserver/limit_proc.h b/kernel/vserver/limit_proc.h index f3182776c..5304816ad 100644 --- a/kernel/vserver/limit_proc.h +++ b/kernel/vserver/limit_proc.h @@ -1,55 +1,55 @@ #ifndef _VX_LIMIT_PROC_H #define _VX_LIMIT_PROC_H +#include -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; - if (limit->rmax[lim] > limit->rlim[lim]) - limit->rmax[lim] = limit->rlim[lim]; - } -} -#define VX_LIMIT_FMT ":\t%10d\t%10ld\t%10ld\t%6d\n" +#define VX_LIMIT_FMT ":\t%8ld\t%8ld/%8ld\t%8lld/%8lld\t%6d\n" +#define VX_LIMIT_TOP \ + "Limit\t current\t min/max\t\t soft/hard\t\thits\n" #define VX_LIMIT_ARG(r) \ - ,atomic_read(&limit->rcur[r]) \ - ,limit->rmax[r] \ - ,limit->rlim[r] \ - ,atomic_read(&limit->lhit[r]) + ,(unsigned long)__rlim_get(limit, r) \ + ,(unsigned long)__rlim_rmin(limit, r) \ + ,(unsigned long)__rlim_rmax(limit, r) \ + ,VX_VLIM(__rlim_soft(limit, r)) \ + ,VX_VLIM(__rlim_hard(limit, r)) \ + ,atomic_read(&__rlim_lhit(limit, r)) static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer) { - vx_limit_fixup(limit); - return sprintf(buffer, + vx_limit_fixup(limit, -1); + return sprintf(buffer, VX_LIMIT_TOP "PROC" VX_LIMIT_FMT "VM" VX_LIMIT_FMT "VML" VX_LIMIT_FMT "RSS" VX_LIMIT_FMT "ANON" VX_LIMIT_FMT + "RMAP" VX_LIMIT_FMT "FILES" VX_LIMIT_FMT "OFD" VX_LIMIT_FMT "LOCKS" VX_LIMIT_FMT "SOCK" VX_LIMIT_FMT "MSGQ" VX_LIMIT_FMT "SHM" VX_LIMIT_FMT + "SEMA" VX_LIMIT_FMT + "SEMS" VX_LIMIT_FMT + "DENT" 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(VLIMIT_ANON) + VX_LIMIT_ARG(VLIMIT_MAPPED) VX_LIMIT_ARG(RLIMIT_NOFILE) VX_LIMIT_ARG(VLIMIT_OPENFD) VX_LIMIT_ARG(RLIMIT_LOCKS) VX_LIMIT_ARG(VLIMIT_NSOCK) VX_LIMIT_ARG(RLIMIT_MSGQUEUE) VX_LIMIT_ARG(VLIMIT_SHMEM) + VX_LIMIT_ARG(VLIMIT_SEMARY) + VX_LIMIT_ARG(VLIMIT_NSEMS) + VX_LIMIT_ARG(VLIMIT_DENTRY) ); }