Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package makedumpfile for openSUSE:Factory 
checked in at 2024-05-16 17:13:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/makedumpfile (Old)
 and      /work/SRC/openSUSE:Factory/.makedumpfile.new.1880 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "makedumpfile"

Thu May 16 17:13:35 2024 rev:92 rq:1174380 version:1.7.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/makedumpfile/makedumpfile.changes        
2023-11-16 20:27:24.325811660 +0100
+++ /work/SRC/openSUSE:Factory/.makedumpfile.new.1880/makedumpfile.changes      
2024-05-16 17:15:09.107871109 +0200
@@ -1,0 +2,15 @@
+Tue May 14 07:21:57 UTC 2024 - ming li <m...@suse.com>
+
+- Update to 1.7.5:
+  * Support for kernels up to v6.8 (x86_64)
+  * Support for printk caller_id by --dump-dmesg option
+  * [PATCH] ppc64: get vmalloc start address from vmcoreinfo
+  * [PATCH] ppc64: read cur_mmu_type from vmcoreinfo
+  * [PATCH] add PRINTK_CALLER id support to --dump-dmesg option
+  * [PATCH v2 2/2] s390x: uncouple virtual and physical address spaces
+  * [PATCH 1/2] s390x: fix virtual vs physical address confusion
+
+  Regenerated the content of the makedumpfile-ppc64-VA-range-SUSE.patch
+  file based on version 1.7.5 of the code
+
+-------------------------------------------------------------------

Old:
----
  makedumpfile-1.7.4.tar.gz

New:
----
  makedumpfile-1.7.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ makedumpfile.spec ++++++
--- /var/tmp/diff_new_pack.QoFAQB/_old  2024-05-16 17:15:10.319915038 +0200
+++ /var/tmp/diff_new_pack.QoFAQB/_new  2024-05-16 17:15:10.319915038 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package makedumpfile
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -28,7 +28,7 @@
 %endif
 
 Name:           makedumpfile
-Version:        1.7.4
+Version:        1.7.5
 Release:        0
 Summary:        Partial kernel dump
 License:        GPL-2.0-only
@@ -71,6 +71,8 @@
 %autosetup -p1
 %endif
 
+%check
+
 %build
 export CFLAGS="%{optflags} -fcommon"
 export USESNAPPY=on

++++++ makedumpfile-1.7.4.tar.gz -> makedumpfile-1.7.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/Makefile 
new/makedumpfile-1.7.5/Makefile
--- old/makedumpfile-1.7.4/Makefile     2023-11-06 01:25:04.000000000 +0100
+++ new/makedumpfile-1.7.5/Makefile     2024-04-12 07:09:09.000000000 +0200
@@ -1,7 +1,7 @@
 # makedumpfile
 
-VERSION=1.7.4
-DATE=6 Nov 2023
+VERSION=1.7.5
+DATE=12 Apr 2024
 
 # Honour the environment variable CC
 ifeq ($(strip $CC),)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/README 
new/makedumpfile-1.7.5/README
--- old/makedumpfile-1.7.4/README       2023-11-06 01:25:04.000000000 +0100
+++ new/makedumpfile-1.7.5/README       2024-04-12 07:09:09.000000000 +0200
@@ -172,6 +172,8 @@
   6.4    |    | ** |    |    |    | ** |    | -- |    | OK |    |    |
   6.5    |    | ** |    |    |    | ** |    | -- |    | OK |    |    |
   6.6    |    | ** |    |    |    | ** |    | -- |    | OK |    |    |
+  6.7    |    | ** |    |    |    | ** |    | -- |    | OK |    |    |
+  6.8    |    | ** |    |    |    | ** |    | -- |    | OK |    |    |
 
   OK    : Support.
   --    : Not support.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/arch/ppc64.c 
new/makedumpfile-1.7.5/arch/ppc64.c
--- old/makedumpfile-1.7.4/arch/ppc64.c 2023-11-06 01:25:04.000000000 +0100
+++ new/makedumpfile-1.7.5/arch/ppc64.c 2024-04-12 07:09:09.000000000 +0200
@@ -250,7 +250,7 @@
                /*
                 * 64K pagesize
                 */
-               if (info->cur_mmu_type & RADIX_MMU) {
+               if (info->cur_mmu_type & MMU_TYPE_RADIX) {
                        info->l1_index_size = PTE_INDEX_SIZE_RADIX_64K;
                        info->l2_index_size = PMD_INDEX_SIZE_RADIX_64K;
                        info->l3_index_size = PUD_INDEX_SIZE_RADIX_64K;
@@ -300,7 +300,7 @@
                /*
                 * 4K pagesize
                 */
-               if (info->cur_mmu_type & RADIX_MMU) {
+               if (info->cur_mmu_type & MMU_TYPE_RADIX) {
                        info->l1_index_size = PTE_INDEX_SIZE_RADIX_4K;
                        info->l2_index_size = PMD_INDEX_SIZE_RADIX_4K;
                        info->l3_index_size = PUD_INDEX_SIZE_RADIX_4K;
@@ -568,7 +568,9 @@
        /*
         * Get vmalloc_start value from either vmap_area_list or vmlist.
         */
-       if ((SYMBOL(vmap_area_list) != NOT_FOUND_SYMBOL)
+       if (NUMBER(vmalloc_start) != NOT_FOUND_NUMBER) {
+               vmalloc_start = NUMBER(vmalloc_start);
+       } else if ((SYMBOL(vmap_area_list) != NOT_FOUND_SYMBOL)
            && (OFFSET(vmap_area.va_start) != NOT_FOUND_STRUCTURE)
            && (OFFSET(vmap_area.list) != NOT_FOUND_STRUCTURE)) {
                if (!readmem(VADDR, SYMBOL(vmap_area_list) + 
OFFSET(list_head.next),
@@ -635,14 +637,19 @@
         * On PowerISA 3.0 based server processors, a kernel can run with
         * radix MMU or standard MMU. Get the current MMU type.
         */
-       info->cur_mmu_type = STD_MMU;
-       if ((SYMBOL(cur_cpu_spec) != NOT_FOUND_SYMBOL)
+       info->cur_mmu_type = MMU_TYPE_STD;
+
+       if (NUMBER(RADIX_MMU) != NOT_FOUND_SYMBOL) {
+               if (NUMBER(RADIX_MMU) == 1) {
+                       info->cur_mmu_type = MMU_TYPE_RADIX;
+               }
+       } else if ((SYMBOL(cur_cpu_spec) != NOT_FOUND_SYMBOL)
            && (OFFSET(cpu_spec.mmu_features) != NOT_FOUND_STRUCTURE)) {
                if (readmem(VADDR, SYMBOL(cur_cpu_spec), &cur_cpu_spec,
                    sizeof(cur_cpu_spec))) {
                        if (readmem(VADDR, cur_cpu_spec + 
OFFSET(cpu_spec.mmu_features),
                            &mmu_features, sizeof(mmu_features)))
-                               info->cur_mmu_type = mmu_features & RADIX_MMU;
+                               info->cur_mmu_type = mmu_features & 
MMU_TYPE_RADIX;
                }
        }
 
@@ -684,11 +691,16 @@
        if ((SYMBOL(vmap_area_list) == NOT_FOUND_SYMBOL)
            || (OFFSET(vmap_area.va_start) == NOT_FOUND_STRUCTURE)
            || (OFFSET(vmap_area.list) == NOT_FOUND_STRUCTURE)) {
-               if ((SYMBOL(vmlist) == NOT_FOUND_SYMBOL)
-                   || (OFFSET(vm_struct.addr) == NOT_FOUND_STRUCTURE)) {
-                       ERRMSG("Can't get info for vmalloc translation.\n");
-                       return NOT_PADDR;
-               }
+               /*
+                * Don't depend on vmap_area_list/vmlist if vmalloc_start is 
set in
+                * vmcoreinfo, in that case proceed without error
+                */
+               if (NUMBER(vmalloc_start) == NOT_FOUND_NUMBER)
+                       if ((SYMBOL(vmlist) == NOT_FOUND_SYMBOL)
+                               || (OFFSET(vm_struct.addr) == 
NOT_FOUND_STRUCTURE)) {
+                               ERRMSG("Can't get info for vmalloc 
translation.\n");
+                               return NOT_PADDR;
+                       }
        }
 
        return ppc64_vtop_level4(vaddr);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/arch/s390x.c 
new/makedumpfile-1.7.5/arch/s390x.c
--- old/makedumpfile-1.7.4/arch/s390x.c 2023-11-06 01:25:04.000000000 +0100
+++ new/makedumpfile-1.7.5/arch/s390x.c 2024-04-12 07:09:09.000000000 +0200
@@ -59,6 +59,69 @@
 #define rsg_offset(x, y)       (rsg_index( x, y) * sizeof(unsigned long))
 #define pte_offset(x)          (pte_index(x) * sizeof(unsigned long))
 
+#define LOWCORE_SIZE           0x2000
+
+#define OS_INFO_VERSION_MAJOR  1
+#define OS_INFO_VERSION_MINOR  1
+
+#define OS_INFO_VMCOREINFO     0
+#define OS_INFO_REIPL_BLOCK    1
+#define OS_INFO_FLAGS_ENTRY    2
+#define OS_INFO_RESERVED       3
+#define OS_INFO_IDENTITY_BASE  4
+#define OS_INFO_KASLR_OFFSET   5
+#define OS_INFO_KASLR_OFF_PHYS 6
+#define OS_INFO_VMEMMAP                7
+#define OS_INFO_AMODE31_START  8
+#define OS_INFO_AMODE31_END    9
+
+struct os_info_entry {
+       union {
+               uint64_t        addr;
+               uint64_t        val;
+       };
+       uint64_t                size;
+       uint32_t                csum;
+} __attribute__((packed));
+
+struct os_info {
+       uint64_t                magic;
+       uint32_t                csum;
+       uint16_t                version_major;
+       uint16_t                version_minor;
+       uint64_t                crashkernel_addr;
+       uint64_t                crashkernel_size;
+       struct  os_info_entry   entry[10];
+       uint8_t                 reserved[3864];
+} __attribute__((packed));
+
+#define S390X_LC_OS_INFO       0x0e18
+
+struct s390_ops {
+       unsigned long long      (*virt_to_phys)(unsigned long vaddr);
+       unsigned long           (*phys_to_virt)(unsigned long long paddr);
+};
+
+static unsigned long long vaddr_to_paddr_s390x_legacy(unsigned long vaddr);
+static unsigned long long vaddr_to_paddr_s390x_vr(unsigned long vaddr);
+static unsigned long paddr_to_vaddr_s390x_legacy(unsigned long long paddr);
+static unsigned long paddr_to_vaddr_s390x_vr(unsigned long long paddr);
+
+struct s390_ops s390_ops = {
+       .virt_to_phys = vaddr_to_paddr_s390x_legacy,
+       .phys_to_virt = paddr_to_vaddr_s390x_legacy,
+};
+
+unsigned long long vaddr_to_paddr_s390x(unsigned long vaddr)
+{
+       return s390_ops.virt_to_phys(vaddr);
+}
+
+unsigned long paddr_to_vaddr_s390x(unsigned long long paddr)
+{
+       return s390_ops.phys_to_virt(paddr);
+}
+
 int
 set_s390x_max_physmem_bits(void)
 {
@@ -88,12 +151,53 @@
        return FALSE;
 }
 
+static int s390x_init_vm(void)
+{
+       struct os_info os_info;
+       ulong addr;
+
+       if (!readmem(PADDR, S390X_LC_OS_INFO, &addr,
+                       sizeof(addr)) || !addr) {
+               ERRMSG("Can't get s390x os_info ptr.\n");
+               return FALSE;
+       }
+
+       if (addr == 0)
+               return TRUE;
+
+       if (!readmem(PADDR, addr, &os_info, offsetof(struct os_info, 
reserved))) {
+               ERRMSG("Can't get os_info header.\n");
+               return FALSE;
+       }
+
+       if (!os_info.entry[OS_INFO_KASLR_OFFSET].val)
+               return TRUE;
+
+       MSG("The -vr kernel detected.\n");
+
+       info->identity_map_base   = os_info.entry[OS_INFO_IDENTITY_BASE].val;
+       info->kvbase              = os_info.entry[OS_INFO_KASLR_OFFSET].val;
+       info->__kaslr_offset_phys = os_info.entry[OS_INFO_KASLR_OFF_PHYS].val;
+       info->vmemmap_start       = os_info.entry[OS_INFO_VMEMMAP].val;
+       info->amode31_start       = os_info.entry[OS_INFO_AMODE31_START].val;
+       info->amode31_end         = os_info.entry[OS_INFO_AMODE31_END].val;
+
+       s390_ops.virt_to_phys   = vaddr_to_paddr_s390x_vr;
+       s390_ops.phys_to_virt   = paddr_to_vaddr_s390x_vr;
+
+       return TRUE;
+}
+
+
 int
 get_machdep_info_s390x(void)
 {
        unsigned long vmalloc_start;
        char *term_str = getenv("TERM");
 
+       if (!s390x_init_vm())
+               return FALSE;
+
        if (term_str && strcmp(term_str, "dumb") == 0)
                /* '\r' control character is ignored on "dumb" terminal. */
                flag_ignore_r_char = 1;
@@ -167,7 +271,7 @@
                return 0;
        }
 
-       if (!readmem(VADDR, table + offset, &entry, sizeof(entry))) {
+       if (!readmem(PADDR, table + offset, &entry, sizeof(entry))) {
                if (level)
                        ERRMSG("Can't read region table %d entry\n", level);
                else
@@ -201,7 +305,7 @@
        unsigned long offset, entry;
 
        offset = pte_offset(vaddr);
-       readmem(VADDR, table + offset, &entry, sizeof(entry));
+       readmem(PADDR, table + offset, &entry, sizeof(entry));
        /*
         * Check if the page table entry could be read and doesn't have
         * the reserved bit set.
@@ -227,17 +331,22 @@
 vtop_s390x(unsigned long vaddr)
 {
        unsigned long long paddr = NOT_PADDR;
+       unsigned long long swapper_pg_dir;
        unsigned long table, entry;
        int level, len;
 
-       if (SYMBOL(swapper_pg_dir) == NOT_FOUND_SYMBOL) {
+       swapper_pg_dir = SYMBOL(swapper_pg_dir);
+       if (swapper_pg_dir == NOT_FOUND_SYMBOL) {
                ERRMSG("Can't get the symbol of swapper_pg_dir.\n");
                return NOT_PADDR;
        }
-       table = SYMBOL(swapper_pg_dir);
+       table = vaddr_to_paddr(swapper_pg_dir);
 
        /* Read the first entry to find the number of page table levels. */
-       readmem(VADDR, table, &entry, sizeof(entry));
+       if (!readmem(PADDR, table, &entry, sizeof(entry))) {
+               ERRMSG("Can't read swapper_pg_dir entry.\n");
+               return NOT_PADDR;
+       }
        level = TABLE_LEVEL(entry);
        len = TABLE_LENGTH(entry);
 
@@ -290,8 +399,8 @@
        return paddr;
 }
 
-unsigned long long
-vaddr_to_paddr_s390x(unsigned long vaddr)
+static unsigned long long
+vaddr_to_paddr_s390x_legacy(unsigned long vaddr)
 {
        unsigned long long paddr;
 
@@ -315,6 +424,32 @@
        return paddr;
 }
 
+static unsigned long long
+vaddr_to_paddr_s390x_vr(unsigned long vaddr)
+{
+       if (vaddr < LOWCORE_SIZE)
+               return vaddr;
+       if ((vaddr < info->amode31_end) && (vaddr >= info->amode31_start))
+               return vaddr;
+       if (vaddr < info->vmemmap_start)
+               return vaddr - info->identity_map_base;
+       if (vaddr >= info->kvbase)
+               return vaddr - info->kvbase + info->__kaslr_offset_phys;
+       return vtop_s390x(vaddr);
+}
+
+unsigned long
+paddr_to_vaddr_s390x_legacy(unsigned long long paddr)
+{
+       return (unsigned long)paddr_to_vaddr_general(paddr);
+}
+
+unsigned long
+paddr_to_vaddr_s390x_vr(unsigned long long paddr)
+{
+       return info->identity_map_base + (unsigned long)paddr;
+}
+
 struct addr_check {
        unsigned long addr;
        int found;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/makedumpfile.c 
new/makedumpfile-1.7.5/makedumpfile.c
--- old/makedumpfile-1.7.4/makedumpfile.c       2023-11-06 01:25:04.000000000 
+0100
+++ new/makedumpfile-1.7.5/makedumpfile.c       2024-04-12 07:09:09.000000000 
+0200
@@ -2118,6 +2118,7 @@
                SIZE_INIT(printk_info, "printk_info");
                OFFSET_INIT(printk_info.ts_nsec, "printk_info", "ts_nsec");
                OFFSET_INIT(printk_info.text_len, "printk_info", "text_len");
+               OFFSET_INIT(printk_info.caller_id, "printk_info", "caller_id");
 
                OFFSET_INIT(atomic_long_t.counter, "atomic_long_t", "counter");
 
@@ -2133,6 +2134,7 @@
                OFFSET_INIT(printk_log.ts_nsec, "printk_log", "ts_nsec");
                OFFSET_INIT(printk_log.len, "printk_log", "len");
                OFFSET_INIT(printk_log.text_len, "printk_log", "text_len");
+               OFFSET_INIT(printk_log.caller_id, "printk_log", "caller_id");
        } else {
                info->flag_use_printk_ringbuffer = FALSE;
                info->flag_use_printk_log = FALSE;
@@ -2462,6 +2464,7 @@
 
                WRITE_MEMBER_OFFSET("printk_info.ts_nsec", printk_info.ts_nsec);
                WRITE_MEMBER_OFFSET("printk_info.text_len", 
printk_info.text_len);
+               WRITE_MEMBER_OFFSET("printk_info.caller_id", 
printk_info.caller_id);
 
                WRITE_MEMBER_OFFSET("atomic_long_t.counter", 
atomic_long_t.counter);
 
@@ -2470,6 +2473,7 @@
                WRITE_MEMBER_OFFSET("printk_log.ts_nsec", printk_log.ts_nsec);
                WRITE_MEMBER_OFFSET("printk_log.len", printk_log.len);
                WRITE_MEMBER_OFFSET("printk_log.text_len", printk_log.text_len);
+               WRITE_MEMBER_OFFSET("printk_log.caller_id", 
printk_log.caller_id);
        } else {
                /* Compatibility with pre-3.11-rc4 */
                WRITE_MEMBER_OFFSET("log.ts_nsec", printk_log.ts_nsec);
@@ -2921,6 +2925,7 @@
                READ_STRUCTURE_SIZE("printk_info", printk_info);
                READ_MEMBER_OFFSET("printk_info.ts_nsec", printk_info.ts_nsec);
                READ_MEMBER_OFFSET("printk_info.text_len", 
printk_info.text_len);
+               READ_MEMBER_OFFSET("printk_info.caller_id", 
printk_info.caller_id);
 
                READ_MEMBER_OFFSET("atomic_long_t.counter", 
atomic_long_t.counter);
 
@@ -2932,6 +2937,7 @@
                READ_MEMBER_OFFSET("printk_log.ts_nsec", printk_log.ts_nsec);
                READ_MEMBER_OFFSET("printk_log.len", printk_log.len);
                READ_MEMBER_OFFSET("printk_log.text_len", printk_log.text_len);
+               READ_MEMBER_OFFSET("printk_log.caller_id", 
printk_log.caller_id);
        } else {
                info->flag_use_printk_ringbuffer = FALSE;
                info->flag_use_printk_log = FALSE;
@@ -2972,6 +2978,8 @@
        READ_NUMBER("PAGE_OFFLINE_MAPCOUNT_VALUE", PAGE_OFFLINE_MAPCOUNT_VALUE);
        READ_NUMBER("phys_base", phys_base);
        READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
+
+       READ_NUMBER_UNSIGNED("VMALLOC_START", vmalloc_start);
 #ifdef __aarch64__
        READ_NUMBER("VA_BITS", VA_BITS);
        READ_NUMBER("TCR_EL1_T1SZ", TCR_EL1_T1SZ);
@@ -2983,7 +2991,6 @@
        READ_NUMBER("VA_BITS", va_bits);
        READ_NUMBER_UNSIGNED("phys_ram_base", phys_ram_base);
        READ_NUMBER_UNSIGNED("PAGE_OFFSET", page_offset);
-       READ_NUMBER_UNSIGNED("VMALLOC_START", vmalloc_start);
        READ_NUMBER_UNSIGNED("VMALLOC_END", vmalloc_end);
        READ_NUMBER_UNSIGNED("VMEMMAP_START", vmemmap_start);
        READ_NUMBER_UNSIGNED("VMEMMAP_END", vmemmap_end);
@@ -2994,6 +3001,7 @@
 #endif
 
        READ_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
+       READ_NUMBER("RADIX_MMU", RADIX_MMU);
 
        return TRUE;
 }
@@ -5604,6 +5612,18 @@
 
        bufp = buf;
        bufp += sprintf(buf, "[%5lld.%06ld] ", nanos, rem/1000);
+
+       if (OFFSET(printk_log.caller_id) != NOT_FOUND_STRUCTURE) {
+               const unsigned int cpuid = 0x80000000;
+               char cidbuf[PID_CHARS_MAX];
+               unsigned int cid;
+
+               /* Get id type, isolate id value in cid for print */
+               cid = UINT(logptr + OFFSET(printk_log.caller_id));
+               sprintf(cidbuf, "%c%u", (cid & cpuid) ? 'C' : 'T', cid & 
~cpuid);
+               bufp += sprintf(bufp, "[%*s] ", PID_CHARS_DEFAULT, cidbuf);
+       }
+
        indent_len = strlen(buf);
 
        /* How much buffer space is needed in the worst case */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/makedumpfile.h 
new/makedumpfile-1.7.5/makedumpfile.h
--- old/makedumpfile-1.7.4/makedumpfile.h       2023-11-06 01:25:04.000000000 
+0100
+++ new/makedumpfile-1.7.5/makedumpfile.h       2024-04-12 07:09:09.000000000 
+0200
@@ -498,7 +498,13 @@
 #define KVER_MIN_SHIFT 16
 #define KERNEL_VERSION(x,y,z) (((x) << KVER_MAJ_SHIFT) | ((y) << 
KVER_MIN_SHIFT) | (z))
 #define OLDEST_VERSION         KERNEL_VERSION(2, 6, 15) /* linux-2.6.15 */
-#define LATEST_VERSION         KERNEL_VERSION(6, 6, 0)  /* linux-6.6.0 */
+#define LATEST_VERSION         KERNEL_VERSION(6, 8, 4)  /* linux-6.8.4 */
+
+/*
+ * for printk caller_id support
+ */
+#define PID_CHARS_MAX 16       /* Max Number of PID characters */
+#define PID_CHARS_DEFAULT 8    /* Default number of PID characters */
 
 /*
  * vmcoreinfo in /proc/vmcore
@@ -535,8 +541,6 @@
  * The value of dependence on machine
  */
 #define PAGE_OFFSET            (info->page_offset)
-#define VMALLOC_START          (info->vmalloc_start)
-#define VMALLOC_END            (info->vmalloc_end)
 #define VMEMMAP_START          (info->vmemmap_start)
 #define VMEMMAP_END            (info->vmemmap_end)
 #define PMASK                  (0x7ffffffffffff000UL)
@@ -747,12 +751,13 @@
 /*
  * Supported MMU types
  */
-#define STD_MMU         0x0
+#define MMU_TYPE_STD         0x0
 /*
  * The flag bit for radix MMU in cpu_spec.mmu_features
- * in the kernel. Use the same flag here.
+ * in the kernel (MMU_FTR_TYPE_RADIX).
+ * Use the same flag here.
  */
-#define RADIX_MMU       0x40
+#define MMU_TYPE_RADIX       0x40
 
 
 #define PGD_MASK_L4            \
@@ -1235,6 +1240,7 @@
 #ifdef __s390x__ /* s390x */
 int get_machdep_info_s390x(void);
 unsigned long long vaddr_to_paddr_s390x(unsigned long vaddr);
+unsigned long paddr_to_vaddr_s390x(unsigned long long paddr);
 int is_iomem_phys_addr_s390x(unsigned long addr);
 #define find_vmemmap()         stub_false()
 #define get_phys_base()                stub_true()
@@ -1242,7 +1248,7 @@
 #define get_versiondep_info()  stub_true()
 #define get_kaslr_offset(X)    get_kaslr_offset_general(X)
 #define vaddr_to_paddr(X)      vaddr_to_paddr_s390x(X)
-#define paddr_to_vaddr(X)      paddr_to_vaddr_general(X)
+#define paddr_to_vaddr(X)      paddr_to_vaddr_s390x(X)
 #define is_phys_addr(X)                is_iomem_phys_addr_s390x(X)
 #define arch_crashkernel_mem_size()    stub_false()
 #endif          /* s390x */
@@ -1760,6 +1766,14 @@
        pthread_mutex_t current_pfn_mutex;
        pthread_mutex_t page_data_mutex;
        pthread_mutex_t filter_mutex;
+
+#ifdef __s390x__ /* s390x */
+       unsigned long identity_map_base;
+       unsigned long kvbase;
+       unsigned long __kaslr_offset_phys;
+       unsigned long amode31_start;
+       unsigned long amode31_end;
+#endif
 };
 extern struct DumpInfo         *info;
 
@@ -2107,10 +2121,17 @@
                long    p_memsz;
        } elf64_phdr;
 
+       /*
+        * The caller_id was added by the Linux 5.1 Kernel to hold
+        * the Thread id or CPU id of the caller adding a printk
+        * dmesg to the ring buffer. As such older versions of the
+        * kernel can ignore this field as it won't be filled in.
+        */
        struct printk_log_s {
                long ts_nsec;
                long len;
                long text_len;
+               long caller_id;
        } printk_log;
 
        /*
@@ -2240,6 +2261,9 @@
        long    HUGETLB_PAGE_DTOR;
        long    phys_base;
        long    KERNEL_IMAGE_SIZE;
+
+       unsigned long vmalloc_start;
+
 #ifdef __aarch64__
        long    VA_BITS;
        long    TCR_EL1_T1SZ;
@@ -2250,7 +2274,6 @@
        long va_bits;
        unsigned long phys_ram_base;
        unsigned long page_offset;
-       unsigned long vmalloc_start;
        unsigned long vmalloc_end;
        unsigned long vmemmap_start;
        unsigned long vmemmap_end;
@@ -2259,6 +2282,8 @@
        unsigned long kernel_link_addr;
        unsigned long va_kernel_pa_offset;
 #endif
+
+       unsigned long RADIX_MMU;
 };
 
 struct srcfile_table {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/makedumpfile.spec 
new/makedumpfile-1.7.5/makedumpfile.spec
--- old/makedumpfile-1.7.4/makedumpfile.spec    2023-11-06 01:25:04.000000000 
+0100
+++ new/makedumpfile-1.7.5/makedumpfile.spec    2024-04-12 07:09:09.000000000 
+0200
@@ -1,6 +1,6 @@
 Name: makedumpfile
 Summary: makedumpfile package
-Version: 1.7.4
+Version: 1.7.5
 Release: 1
 Group: Applications/Text
 License: GPL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makedumpfile-1.7.4/printk.c 
new/makedumpfile-1.7.5/printk.c
--- old/makedumpfile-1.7.4/printk.c     2023-11-06 01:25:04.000000000 +0100
+++ new/makedumpfile-1.7.5/printk.c     2024-04-12 07:09:09.000000000 +0200
@@ -114,6 +114,18 @@
 
        bufp = buf;
        bufp += sprintf(buf, "[%5lld.%06ld] ", nanos, rem/1000);
+
+       if (OFFSET(printk_info.caller_id) != NOT_FOUND_STRUCTURE) {
+               const unsigned int cpuid = 0x80000000;
+               char cidbuf[PID_CHARS_MAX];
+               unsigned int cid;
+
+               /* Get id type, isolate id value in cid for print */
+               cid = UINT(inf + OFFSET(printk_info.caller_id));
+               sprintf(cidbuf, "%c%u", (cid & cpuid) ? 'C' : 'T', cid & 
~cpuid);
+               bufp += sprintf(bufp, "[%*s] ", PID_CHARS_DEFAULT, cidbuf);
+       }
+
        indent_len = strlen(buf);
 
        /* How much buffer space is needed in the worst case */

++++++ makedumpfile-ppc64-VA-range-SUSE.patch ++++++
--- /var/tmp/diff_new_pack.QoFAQB/_old  2024-05-16 17:15:10.427918952 +0200
+++ /var/tmp/diff_new_pack.QoFAQB/_new  2024-05-16 17:15:10.431919097 +0200
@@ -5,18 +5,10 @@
 
 SLE 15 SP1 backported commit c2b4d8b7417a ("powerpc/mm/hash64: Increase
 the VA range"), to Linux 4.12, so let's check SUSE_PRODUCT_CODE.
-
-Signed-off-by: Petr Tesarik <ptesa...@suse.cz>
----
- arch/ppc64.c   |    3 ++-
- makedumpfile.c |    4 ++++
- makedumpfile.h |    3 +++
- 3 files changed, 9 insertions(+), 1 deletion(-)
-Index: makedumpfile-1.7.1/arch/ppc64.c
-===================================================================
---- makedumpfile-1.7.1.orig/arch/ppc64.c
-+++ makedumpfile-1.7.1/arch/ppc64.c
-@@ -248,7 +248,9 @@ ppc64_vmalloc_init(void)
+diff -uprN makedumpfile-1.7.5.orig/arch/ppc64.c makedumpfile-1.7.5/arch/ppc64.c
+--- makedumpfile-1.7.5.orig/arch/ppc64.c       2024-04-12 13:09:09.000000000 
+0800
++++ makedumpfile-1.7.5/arch/ppc64.c    2024-05-16 14:19:46.846209221 +0800
+@@ -261,7 +261,9 @@ ppc64_vmalloc_init(void)
  
                        if (info->kernel_version >= KERNEL_VERSION(4, 12, 0)) {
                                info->l2_index_size = 
PMD_INDEX_SIZE_L4_64K_4_12;
@@ -27,40 +19,36 @@
                                        info->l3_index_size = 
PUD_INDEX_SIZE_L4_64K_4_17;
                                else
                                        info->l3_index_size = 
PUD_INDEX_SIZE_L4_64K_4_12;
-Index: makedumpfile-1.7.1/makedumpfile.c
-===================================================================
---- makedumpfile-1.7.1.orig/makedumpfile.c
-+++ makedumpfile-1.7.1/makedumpfile.c
-@@ -2491,6 +2491,8 @@ write_vmcoreinfo_data(void)
+diff -uprN makedumpfile-1.7.5.orig/makedumpfile.c 
makedumpfile-1.7.5/makedumpfile.c
+--- makedumpfile-1.7.5.orig/makedumpfile.c     2024-04-12 13:09:09.000000000 
+0800
++++ makedumpfile-1.7.5/makedumpfile.c  2024-05-16 14:16:42.897988141 +0800
+@@ -2531,6 +2531,7 @@ write_vmcoreinfo_data(void)
+       WRITE_NUMBER_UNSIGNED("PHYS_OFFSET", PHYS_OFFSET);
        WRITE_NUMBER_UNSIGNED("kimage_voffset", kimage_voffset);
  #endif
++        WRITE_NUMBER("SUSE_PRODUCT_CODE", SUSE_PRODUCT_CODE);
  
-+      WRITE_NUMBER("SUSE_PRODUCT_CODE", SUSE_PRODUCT_CODE);
-+
        if (info->phys_base)
                fprintf(info->file_vmcoreinfo, "%s%lu\n", 
STR_NUMBER("phys_base"),
-                       info->phys_base);
-@@ -2939,6 +2941,8 @@ read_vmcoreinfo(void)
+@@ -3002,6 +3003,7 @@ read_vmcoreinfo(void)
  
        READ_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
- 
+       READ_NUMBER("RADIX_MMU", RADIX_MMU);
 +      READ_NUMBER("SUSE_PRODUCT_CODE", SUSE_PRODUCT_CODE);
-+
+ 
        return TRUE;
  }
- 
-Index: makedumpfile-1.7.1/makedumpfile.h
-===================================================================
---- makedumpfile-1.7.1.orig/makedumpfile.h
-+++ makedumpfile-1.7.1/makedumpfile.h
-@@ -2069,6 +2069,9 @@ struct number_table {
-       unsigned long kernel_link_addr;
+diff -uprN makedumpfile-1.7.5.orig/makedumpfile.h 
makedumpfile-1.7.5/makedumpfile.h
+--- makedumpfile-1.7.5.orig/makedumpfile.h     2024-04-12 13:09:09.000000000 
+0800
++++ makedumpfile-1.7.5/makedumpfile.h  2024-05-16 14:18:08.275376258 +0800
+@@ -2283,6 +2283,9 @@ struct number_table {
        unsigned long va_kernel_pa_offset;
  #endif
-+
+ 
 +      /* Distro-specific */
 +      long    SUSE_PRODUCT_CODE;
++
+       unsigned long RADIX_MMU;
  };
  
- struct srcfile_table {
 

Reply via email to