Hi, Sorry. Attached. Itsuro Oda. On Thu, 09 Oct 2008 09:18:13 -0400 Dave Anderson <anderson@xxxxxxxxxx> wrote: > Itsuro ODA wrote: > > Hi, > > > > I decided to use the version number of xen which is included in the > > XEN_ELFNOTE_CRASH_INFO after all. > > The defect is that vmcores taken on the xen-unstable during the > > xen-3.3 development before the changset 17831 (2008/6/12) can not be > > analized with the newer crash. I think it is not a big problem since > > it is rare case to analyze such vmcores right now. > > OK, that's fine with me. > > However, can you re-send me the new patch as an *attachment* to your email? > > Both this patch and the last one that you sent have whitespace > problems because all tabs in the file have been turned into spaces: > > $ patch -p0 --dry-run < $HOME/xen-3.3.0.patch > patching file defs.h > patching file netdump.h > Hunk #1 FAILED at 110. > 1 out of 1 hunk FAILED -- saving rejects to file netdump.h.rej > patching file netdump.c > Hunk #1 FAILED at 1525. > Hunk #2 FAILED at 1732. > Hunk #3 succeeded at 2347 with fuzz 2. > 2 out of 3 hunks FAILED -- saving rejects to file netdump.c.rej > patching file xen_hyper_defs.h > Hunk #1 FAILED at 134. > Hunk #2 FAILED at 403. > 2 out of 2 hunks FAILED -- saving rejects to file xen_hyper_defs.h.rej > patching file xen_hyper.c > Hunk #1 FAILED at 71. > Hunk #2 FAILED at 1753. > 2 out of 2 hunks FAILED -- saving rejects to file xen_hyper.c.rej > patching file xen_hyper_command.c > Hunk #1 FAILED at 1022. > 1 out of 1 hunk FAILED -- saving rejects to file xen_hyper_command.c.rej > $ > > Thanks, > Dave > > > > > On Wed, 8 Oct 2008 08:56:48 -0400 (EDT) > > Dave Anderson <anderson@xxxxxxxxxx> wrote: > > > >> ----- "Itsuro ODA" <oda@xxxxxxxxxxxxx> wrote: > >> > >>> Hi, > >>> > >>> It is a good question. > >>> I checked about i386. __per_cpu_data_end - __per_cpu_start is smaller > >>> than 4K, but PERCPU_SHIFT is 13 (it is common both x86_32 and > >>> x86_64). > >>> Oops. > >>> > >>> I will consider more. > >> Ok, I'll wait for a new patch set. > >> > >> Another direction that you might consider is to check whether > >> a new symbol was introduced in the same patch-set that > >> incremented the PERCPU_SHIFT values? > > > > I found this is equivalent as using "__per_cpu_data_end - __per_cpu_start > 4K" > > since the change of the PERCPU_SHIFT was for x86_64 only and it was > > not helpful for i386. > > > >> Or take Keir up on his offer to compile-in an absolute > >> value that can be accessed like a symbol? > > > > It is checked first in the patch. > > > >> As far as the UPTIME display, it will probably raise > >> fewer questions in the future if you would just remove > >> it entirely. > >> > >> Thanks, > >> Dave > >> > > > > * PERCPU_SHIFT becomes 13 (from 12) in the xen-3.3.0. > > This value is determined by xen version number. > > (If the symbol "__per_cpu_shift" exists, it is used first for the future.) > > * "jiffies" does not exist in the xen-3.3.0. > > It was used to show the uptime. I found there is no altanernative > > (i.e. the xen hypervisor does not have the uptime.). > > Then if "jiffies" does not exist, "--:--:--" is showed as UPTIME in > > the sys command. > > --- example --- > > crash> sys > > KERNEL: xen-syms > > DUMPFILE: vmcore > > CPUS: 4 > > DOMAINS: 5 > > UPTIME: --:--:-- > > MACHINE: Intel(R) Core(TM)2 Quad CPU Q9450 @ 2.66GHz (2660 Mhz) > > MEMORY: 2 GB > > ---------------- > > > > This patch is for crash-4.0-7.2. > > > > Thanks > > Itsuro Oda > > > > --- > > --- defs.h.org 2008-10-09 09:25:11.000000000 +0900 > > +++ defs.h 2008-10-09 09:53:53.000000000 +0900 > > @@ -4118,6 +4118,8 @@ > > int is_sadump_xen(void); > > void set_xen_phys_start(char *); > > ulong xen_phys_start(void); > > +int xen_major_version(void); > > +int xen_minor_version(void); > > > > /* > > * diskdump.c > > --- netdump.h.org 2008-10-09 09:25:03.000000000 +0900 > > +++ netdump.h 2008-10-09 09:49:26.000000000 +0900 > > @@ -110,6 +110,8 @@ > > int p2m_frames; > > ulong *p2m_mfn_frame_list; > > ulong xen_phys_start; > > + int xen_major_version; > > + int xen_minor_version; > > }; > > > > #define KDUMP_P2M_INIT (0x1) > > --- netdump.c.org 2008-10-09 09:24:54.000000000 +0900 > > +++ netdump.c 2008-10-09 09:53:20.000000000 +0900 > > @@ -1525,6 +1525,8 @@ > > nd->xen_kdump_data->p2m_mfn = *(uptr+(words-1)); > > if (words > 9 && !nd->xen_kdump_data->xen_phys_start) > > nd->xen_kdump_data->xen_phys_start = *(uptr+(words-2)); > > + nd->xen_kdump_data->xen_major_version = *uptr; > > + nd->xen_kdump_data->xen_minor_version = *(uptr+1); > > } > > } > > break; > > @@ -1730,6 +1732,8 @@ > > nd->xen_kdump_data->p2m_mfn = *(up+(words-1)); > > if (words > 9 && !nd->xen_kdump_data->xen_phys_start) > > nd->xen_kdump_data->xen_phys_start = *(up+(words-2)); > > + nd->xen_kdump_data->xen_major_version = *up; > > + nd->xen_kdump_data->xen_minor_version = *(up+1); > > } > > } > > break; > > @@ -2343,3 +2347,15 @@ > > { > > return nd->xen_kdump_data->xen_phys_start; > > } > > + > > +int > > +xen_major_version(void) > > +{ > > + return nd->xen_kdump_data->xen_major_version; > > +} > > + > > +int > > +xen_minor_version(void) > > +{ > > + return nd->xen_kdump_data->xen_minor_version; > > +} > > --- xen_hyper_defs.h.org 2008-10-06 13:45:39.000000000 +0900 > > +++ xen_hyper_defs.h 2008-10-06 13:44:44.000000000 +0900 > > @@ -134,9 +134,8 @@ > > #endif > > > > #if defined(X86) || defined(X86_64) > > -#define XEN_HYPER_PERCPU_SHIFT 12 > > #define xen_hyper_per_cpu(var, cpu) \ > > - ((ulong)(var) + (((ulong)(cpu))<<XEN_HYPER_PERCPU_SHIFT)) > > + ((ulong)(var) + (((ulong)(cpu))<<xht->percpu_shift)) > > #elif defined(IA64) > > #define xen_hyper_per_cpu(var, cpu) \ > > ((xht->flags & XEN_HYPER_SMP) ? \ > > @@ -404,6 +403,7 @@ > > ulong *cpumask; > > uint *cpu_idxs; > > ulong *__per_cpu_offset; > > + int percpu_shift; > > }; > > > > struct xen_hyper_dumpinfo_context { > > --- xen_hyper.c.org 2008-10-06 13:41:14.000000000 +0900 > > +++ xen_hyper.c 2008-10-09 11:31:24.000000000 +0900 > > @@ -71,6 +71,13 @@ > > #endif > > > > #if defined(X86) || defined(X86_64) > > + if (symbol_exists("__per_cpu_shift")) { > > + xht->percpu_shift = (int)symbol_value("__per_cpu_shift"); > > + } else if (xen_major_version() >= 3 && xen_minor_version() >= 3) { > > + xht->percpu_shift = 13; > > + } else { > > + xht->percpu_shift = 12; > > + } > > member_offset = MEMBER_OFFSET("cpuinfo_x86", "x86_model_id"); > > buf = GETBUF(XEN_HYPER_SIZE(cpuinfo_x86)); > > if (xen_hyper_test_pcpu_id(XEN_HYPER_CRASHING_CPU())) { > > @@ -1746,9 +1753,11 @@ > > tmp2 = (ulong)jiffies_64; > > jiffies_64 = (ulonglong)(tmp2 - tmp1); > > } > > - } else { > > + } else if (symbol_exists("jiffies")) { > > get_symbol_data("jiffies", sizeof(long), &jiffies); > > jiffies_64 = (ulonglong)jiffies; > > + } else { > > + jiffies_64 = 0; /* hypervisor does not have uptime */ > > } > > > > return jiffies_64; > > --- xen_hyper_command.c.org 2008-10-07 08:05:37.000000000 +0900 > > +++ xen_hyper_command.c 2008-10-07 08:24:29.000000000 +0900 > > @@ -1022,7 +1022,8 @@ > > (buf1, "%d\n", XEN_HYPER_NR_DOMAINS())); > > /* !!!Display a date here if it can be found. */ > > XEN_HYPER_PRI(fp, len, "UPTIME: ", buf1, flag, > > - (buf1, "%s\n", convert_time(xen_hyper_get_uptime_hyper(), buf2))); > > + (buf1, "%s\n", (xen_hyper_get_uptime_hyper() ? > > + convert_time(xen_hyper_get_uptime_hyper(), buf2) : "--:--:--"))); > > /* !!!Display a version here if it can be found. */ > > XEN_HYPER_PRI_CONST(fp, len, "MACHINE: ", flag); > > if (strlen(uts->machine)) { > > --- > -- Itsuro ODA <oda@xxxxxxxxxxxxx>
Attachment:
xen-3.3.patch
Description: Binary data
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility