Hello community,
here is the log from the commit of package makedumpfile
checked in at Thu Nov 29 18:24:33 CET 2007.
--------
--- makedumpfile/makedumpfile.changes 2007-11-02 11:39:15.000000000 +0100
+++ /mounts/work_src_done/STABLE/makedumpfile/makedumpfile.changes 2007-11-29 13:34:12.326896000 +0100
@@ -1,0 +2,6 @@
+Thu Nov 29 13:41:09 CET 2007 - bwalle@suse.de
+
+- updated to 1.2.3
+ o Add the filtering feature for free_pages of linux-2.6.24.
+
+-------------------------------------------------------------------
Old:
----
makedumpfile-1.2.2.tar.bz2
New:
----
makedumpfile-1.2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ makedumpfile.spec ++++++
--- /var/tmp/diff_new_pack.u15478/_old 2007-11-29 18:23:03.000000000 +0100
+++ /var/tmp/diff_new_pack.u15478/_new 2007-11-29 18:23:03.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package makedumpfile (Version 1.2.2)
+# spec file for package makedumpfile (Version 1.2.3)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,7 +14,7 @@
BuildRequires: gcc-c++ libdw-devel libdw1 libelf-devel libelf0 libelf1 zlib-devel
%define elfutils_version 0.124
License: GPL v2 or later
-Version: 1.2.2
+Version: 1.2.3
Release: 1
Summary: Partial kernel dump
Group: System/Kernel
@@ -57,7 +57,11 @@
%doc README COPYING
%doc %{_mandir}/man?/*
/bin/*
+
%changelog
+* Thu Nov 29 2007 - bwalle@suse.de
+- updated to 1.2.3
+ o Add the filtering feature for free_pages of linux-2.6.24.
* Fri Nov 02 2007 - bwalle@suse.de
- updated to 1.2.2
o Fix the problem that vmcoreinfo cannot be extracted from ELF32
++++++ makedumpfile-1.2.2.tar.bz2 -> makedumpfile-1.2.3.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/makedumpfile/makedumpfile.8 new/makedumpfile/makedumpfile.8
--- old/makedumpfile/makedumpfile.8 2007-11-02 04:11:54.000000000 +0100
+++ new/makedumpfile/makedumpfile.8 2007-11-14 12:34:36.000000000 +0100
@@ -1,4 +1,4 @@
-.TH MAKEDUMPFILE 8 "November 2007" "makedumpfile v1.2.2" "Linux System Administrator's Manual"
+.TH MAKEDUMPFILE 8 "November 2007" "makedumpfile v1.2.3" "Linux System Administrator's Manual"
.SH NAME
makedumpfile \- make a small dumpfile of kdump
.SH SYNOPSIS
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/makedumpfile/makedumpfile.c new/makedumpfile/makedumpfile.c
--- old/makedumpfile/makedumpfile.c 2007-11-02 04:11:50.000000000 +0100
+++ new/makedumpfile/makedumpfile.c 2007-11-14 12:34:36.000000000 +0100
@@ -1863,6 +1863,7 @@
*/
SIZE_INIT(free_area, "free_area");
OFFSET_INIT(free_area.free_list, "free_area", "free_list");
+ MEMBER_ARRAY_LENGTH_INIT(free_area.free_list, "free_area", "free_list");
/*
* Get offsets of the list_head's members.
@@ -2102,6 +2103,7 @@
WRITE_ARRAY_LENGTH("node_memblk", node_memblk);
WRITE_ARRAY_LENGTH("zone.free_area", zone.free_area);
+ WRITE_ARRAY_LENGTH("free_area.free_list", free_area.free_list);
WRITE_NUMBER("NR_FREE_PAGES", NR_FREE_PAGES);
WRITE_NUMBER("N_ONLINE", N_ONLINE);
@@ -2317,6 +2319,7 @@
READ_ARRAY_LENGTH("mem_section", mem_section);
READ_ARRAY_LENGTH("node_memblk", node_memblk);
READ_ARRAY_LENGTH("zone.free_area", zone.free_area);
+ READ_ARRAY_LENGTH("free_area.free_list", free_area.free_list);
READ_NUMBER("NR_FREE_PAGES", NR_FREE_PAGES);
READ_NUMBER("N_ONLINE", N_ONLINE);
@@ -3691,48 +3694,60 @@
reset_bitmap_of_free_pages(unsigned long node_zones)
{
- int order, i;
+ int order, i, migrate_type, migrate_types;
unsigned long curr, previous, head, curr_page, curr_prev;
unsigned long addr_free_pages, free_pages = 0, found_free_pages = 0;
unsigned long long pfn, start_pfn;
- for (order = (ARRAY_LENGTH(zone.free_area) - 1); order >= 0; --order) {
- head = node_zones + OFFSET(zone.free_area)
- + SIZE(free_area) * order + OFFSET(free_area.free_list);
- previous = head;
- if (!readmem(VADDR, head + OFFSET(list_head.next), &curr,
- sizeof curr)) {
- ERRMSG("Can't get next list_head.\n");
- return FALSE;
- }
- for (;curr != head;) {
- curr_page = curr - OFFSET(page.lru);
- start_pfn = page_to_pfn(curr_page);
- if (start_pfn == ULONGLONG_MAX)
- return FALSE;
+ /*
+ * On linux-2.6.24 or later, free_list is divided into the array.
+ */
+ migrate_types = ARRAY_LENGTH(free_area.free_list);
+ if (migrate_types == NOT_FOUND_STRUCTURE)
+ migrate_types = 1;
- if (!readmem(VADDR, curr + OFFSET(list_head.prev),
- &curr_prev, sizeof curr_prev)) {
- ERRMSG("Can't get prev list_head.\n");
- return FALSE;
- }
- if (previous != curr_prev) {
- ERRMSG("The free list is broken.\n");
- retcd = ANALYSIS_FAILED;
- return FALSE;
- }
- for (i = 0; i < (1<