[Linux-ia64] Re: [patch] 2.4.20-021210 misaligned sal error record

From: Keith Owens <kaos_at_sgi.com>
Date: 2003-03-05 13:11:19
On Tue, 4 Mar 2003 16:01:20 -0800, 
David Mosberger <davidm@napali.hpl.hp.com> wrote:
>+/* Given a sal_log_processor_info_t pointer, return a pointer to the processor_static_info: */
>+#define SAL_LPI_PSI_INFO(l)								\
>+({	sal_log_processor_info_t *_l = (l);						\
>+	((sal_processor_static_info_t *)						\
>+	 ((char *) _l + ((_l->valid.num_cache_check + _l->valid.num_tlb_check		\
                   ^^  must be &_l->info
	 ((char *) &_l->info + ((_l->valid.num_cache_check + _l->valid.num_tlb_check	\

With that change, kdb v4.0 gets accurate backtraces from INIT monarch.
BTW, your patch does not fit 2.4.20-ia64-021210, looks like it is
against 2.5.

# modprobe kdbm_kaos
forcing init
Entered OS INIT handler
+BEGIN HARDWARE ERROR STATE AT INIT
+ Err Record ID: 1    SAL Rev:	0.02
+ Time: 03/05/2003/ 02:01:30	Severity 0
+ Processor Device Error Info Section
+ Processor State Param: 0xffe301a0
+ Processor LID: 0x0
+ CPUID Regs: 0x49656e69756e6547 0x6c65746e 0x0 0x1f000604
....
+END HARDWARE ERROR STATE AT INIT
  nat=0x0000000000000000    r1=0xe00210000092c000    r2=0xe000003014723e48
   r3=0xe000003014723e38    r4=0x0000000000000000    r5=0x80000000ffe71ce0
   r6=0x80000087fed30000    r7=0x0000000000000040    r8=0x0000000000000000
   r9=0xffffffffffffffff   r10=0x0000000000000000   r11=0x80000000ff670159
  r12=0xe000003014723e50   r13=0xe00000301471c000   r14=0x0000000000000000
  r15=0x0000000000000000 b0r16=0xe00000301471d318 b0r17=0x0000000000000308
b0r18=0x0000000000000000 b0r19=0x0000000000000000 b0r20=0xe00210000092c000
b0r21=0xe00200000015af60 b0r22=0x0000000000000000 b0r23=0x000000000001003e
b0r24=0x8000000000000012 b0r25=0x0000000000000000 b0r26=0x000000000000068d
b0r27=0x0000000000000003 b0r28=0xe0020000000168f0 b0r29=0x0000121008026018
b0r30=0x800000000000068d b0r31=0x80000000ff654989   r16=0xc0000087fed00000
  r17=0xe00000301471c028   r18=0xa000000000008420   r19=0x0009804c8a70033f
  r20=0x000000301471c000   r21=0xe0020000000cf8d0   r22=0x80000000ffe793b0
  r23=0x0000000000000000   r24=0x0000000000000000   r25=0x0000000000000000
  r26=0x0000000000000000   r27=0xe00000301471d368   r28=0x80000000ff654a89
  r29=0x0000000000000000   r30=0x0000000000000000   r31=0xe002100000827968
preds=0x80000000ff654989   br0=0xe002000000016990   rsc=0x0000000000000003
  iip=0xe0020000000168f0  ipsr=0x0000121008026018   ifs=0x800000000000068d
  xip=0xe0020000000168f0  xpsr=0x0000121008026018   xfs=0x800000000000068d

Entering kdb (current=0xe00000301471c000, pid 0) on processor 0
[0]kdb> bt
0xe00000301471c000	  0	   0  1	   0   R  0xe00000301471c7d0 *swapper
0xe0020000000168f0 cpu_idle+0xb0
	args (0xe0021000008c6a88, 0xa000000000008418, 0x1e0008, 0xa000000000008410, 0xfffffffffffffffd)
	kernel .text 0xe002000000000000 0xe002000000016840 0xe002000000016ae0
0xe002000000009170 rest_init+0x90
	args (0xe00200000064d1a0, 0x186)
	kernel .text 0xe002000000000000 0xe0020000000090e0 0xe0020000000091a0
0xe00200000064d1a0 start_kernel+0x5c0
	args (0xe0021000008f0f90, 0xe0020000000084d0, 0x794)
	kernel .text.init 0xe00200000064c000 0xe00200000064cbe0 0xe00200000064d1c0
0xe0020000000084d0 start_ap+0x2b0
	args (0x2bc3bf5b000, 0x3004a3e500, 0x3, 0x3, 0x2bc3bd8c408)
	kernel .text 0xe002000000000000 0xe002000000008220 0xe0020000000084f0

kdb v4.0 bt was constructed from the SAL_INFO_TYPE_INIT min state data.

        plog_ptr = (ia64_err_rec_t *)IA64_LOG_CURR_BUFFER(SAL_INFO_TYPE_INIT);
        if (plog_ptr)
                s = SAL_LPI_PSI_INFO(&plog_ptr->proc_err);
Received on Tue Mar 04 18:12:23 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:12 EST