Kernel version >= 2.6.27 check
Jeff Schroeder wrote: > Awesome tool! I learned about this from the LWN article and > immediately (stupidly) tried it out on a centos 5 host. Here is a > patch to add a kernel version check. This is a nice fix, but the version check should be done against the proc data being used (which is not necessarily that of the local kernel). This required moving kernel_version_check to after where the src data is read.
This commit is contained in:
parent
b2041ff9b6
commit
67aee6e39d
2 changed files with 6 additions and 3 deletions
2
capture
2
capture
|
|
@ -4,7 +4,7 @@
|
|||
# capture a memory data snapshot with realtime priority
|
||||
mkdir -p $1
|
||||
chrt --fifo 99 \
|
||||
cp -a --parents /proc/[0-9]*/{smaps,cmdline,stat} /proc/meminfo $1
|
||||
cp -a --parents /proc/[0-9]*/{smaps,cmdline,stat} /proc/meminfo /proc/version $1
|
||||
|
||||
# build a compressed tarball of snapshot
|
||||
cd $1/proc
|
||||
|
|
|
|||
7
smem
7
smem
|
|
@ -33,6 +33,8 @@ class procdata(object):
|
|||
return self._readlines('%s/smaps' % pid)
|
||||
def memdata(self):
|
||||
return self._readlines('meminfo')
|
||||
def version(self):
|
||||
return self._readlines('version')[0]
|
||||
def pidname(self, pid):
|
||||
l = self._read('%d/stat' % pid)
|
||||
return l[l.find('(') + 1: l.find(')')]
|
||||
|
|
@ -552,7 +554,7 @@ def showbar(l, columns, sort):
|
|||
pylab.show()
|
||||
|
||||
def kernel_version_check():
|
||||
kernel_release = os.uname()[2].split('-')[0]
|
||||
kernel_release = src.version().split()[2].split('-')[0]
|
||||
if kernel_release < "2.6.27":
|
||||
name = os.path.basename(sys.argv[0])
|
||||
sys.stderr.write(name + " requires a kernel >= 2.6.27\n")
|
||||
|
|
@ -606,7 +608,6 @@ parser.add_option("-S", "--source", type="str",
|
|||
help="/proc data source")
|
||||
|
||||
|
||||
kernel_version_check()
|
||||
defaults = {}
|
||||
parser.set_defaults(**defaults)
|
||||
(options, args) = parser.parse_args()
|
||||
|
|
@ -616,6 +617,8 @@ try:
|
|||
except:
|
||||
src = procdata(options.source)
|
||||
|
||||
kernel_version_check()
|
||||
|
||||
try:
|
||||
if options.mappings:
|
||||
showmaps()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue