All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [parisc-linux] Re: [parisc-linux-cvs] linux carlos
@ 2003-08-28  7:04 Joel Soete
  2003-08-28 15:12 ` Grant Grundler
  0 siblings, 1 reply; 23+ messages in thread
From: Joel Soete @ 2003-08-28  7:04 UTC (permalink / raw)
  To: Grant Grundler; +Cc: parisc-linux

Hi Grant,

>AFAIK, a cacheline will get loaded as "shared clean"
>until someone writes to it - which is when the cacheline ping-pong
>starts.

Mhh would it not request some kind of ipc between cpu for cache management?

But to avoid usage of cache would it be possible to access global kernel's
variable with absolute addressing mode? Is it feasible?

...

btw scaning code related to SMP I find in smp.c a very draft of an 'ipi_init()'
but unfortunately 'Ignore for now. *May* need this "hook" to register IPI
handler'..., interesting isn't it :).
Is there any other platform inplementing such stuff (I try to scan 2.4 src
but not found anywhere else) or some reference on to implement it?


>PAT PDC (L-/N-class and A500) have hard coded numbers for CPUs.
>parisc-linux only uses logical CPU numbers to avoid sparsely populated
>arrays. parisc-linux can get the  "Physical CPU #" from PAT PDC.
>See code inside USE_PAT_CPUID in arch/parisc/kernel/processor.c.
>You might hack that code a bit so you can correlate logic to physical
>CPU numbers.

Ah see better now, it answers to another question.

Thanks,
    Joel




-------------------------------------------------------------------------
Tiscali ADSL, seulement 35 eur/mois et le modem est inclus...abonnez-vous!
http://reg.tiscali.be/default.asp?lg=fr 

^ permalink raw reply	[flat|nested] 23+ messages in thread
* RE: [parisc-linux] Re: [parisc-linux-cvs] linux carlos
@ 2003-08-29 15:59 Joel Soete
  2003-08-29 16:13 ` Grant Grundler
  0 siblings, 1 reply; 23+ messages in thread
From: Joel Soete @ 2003-08-29 15:59 UTC (permalink / raw)
  To: Jim Hull, parisc-linux; +Cc: Grant Grundler

>If you use fdc, fic, or pdc then they are broadcast to other
>processors, but fdce and fice are not.

Hi Jim and al,

I just noticed the two following loops:
flush_data_cache_local:
[...]

fdmanyloop:                                     /* Loop if LOOP >= 2 */
        ADDIB>          -1,%r31,fdmanyloop      /* Adjusted inner loop decr
*/
        fdce            0(%sr1,%arg0)
        fdce,m          %arg1(%sr1,%arg0)       /* Last fdce and addr adjust
*/
        movb,tr         %arg3,%r31,fdmanyloop   /* Re-init inner loop count
*/
        ADDIB<=,n       -1,%arg2,fdsync         /* Outer loop decr */

fdoneloop:                                      /* Loop if LOOP = 1 */
        ADDIB>          -1,%arg2,fdoneloop      /* Outer loop count decr
*/
        fdce,m          %arg1(%sr1,%arg0)       /* Fdce for one loop */

fdsync:
        syncdma
        sync
        mtsm    %r22
        bv      %r0(%r2)
        nop
        .exit

        .procend

[...]

flush_instruction_cache_local:
[...]

fimanyloop:                                     /* Loop if LOOP >= 2 */
        ADDIB>          -1,%r31,fimanyloop      /* Adjusted inner loop decr
*/
        fice            0(%sr1,%arg0)
        fice,m          %arg1(%sr1,%arg0)       /* Last fice and addr adjust
*/
        movb,tr         %arg3,%r31,fimanyloop   /* Re-init inner loop count
*/
        ADDIB<=,n       -1,%arg2,fisync         /* Outer loop decr */

fioneloop:                                      /* Loop if LOOP = 1 */
        ADDIB>          -1,%arg2,fioneloop      /* Outer loop count decr
*/
        fice,m          %arg1(%sr1,%arg0)       /* Fice for one loop */

fisync:
        sync
        bv      %r0(%r2)
        nop
        .exit

        .procend


Do you think that could be there where the pb occurs?

Thanks for advise,
    Joel

-------------------------------------------------------------------------
Tiscali ADSL, seulement 35 eur/mois et le modem est inclus...abonnez-vous!
http://reg.tiscali.be/default.asp?lg=fr 

^ permalink raw reply	[flat|nested] 23+ messages in thread
* Re: [parisc-linux] Re: [parisc-linux-cvs] linux carlos
@ 2003-08-28 16:08 Joel Soete
  2003-08-28 16:34 ` Jim Hull
  0 siblings, 1 reply; 23+ messages in thread
From: Joel Soete @ 2003-08-28 16:08 UTC (permalink / raw)
  To: Grant Grundler; +Cc: parisc-linux

[-- Attachment #1: Type: text/plain, Size: 2365 bytes --]

>
>no.
>IIRC instructions for purging the cache are broadcast to other CPUs.
>
That is the first thing I would like to check (as the first signal I notice
is a itlb miss fault and the piminfo of the 2d cpu seems to show a crash
on a branch instruction [cmpb iirc], I presume that during the init of the
second cpu this last tries to access a page which was just purged by the
first.  This is also why I would like to find the psw of this second cpu
in the mentionned pimfinfo :) )

>> But to avoid usage of cache would it be possible to access global kernel's
>> variable with absolute addressing mode? Is it feasible?
>
>Since the caches use virtual indices, it would make sense when using
>physically addresses to bypass the cache. But I don't know if that's
>really the case or not. I would expect that described in the PA2.0 Arch
>book.

I don't yet browse all the book but at a first glance ldda and stda are available
(respectively load and store doubleword absolute)...

>> btw scaning cod
>>  related to SMP I find in smp.c a very draft of
>> an 'ipi_init()' but unfortunately 'Ignore for now.  *May* need this
>> "hook" to register IPI handler'..., interesting isn't it :).
>
>I wrote that. ipi_init and comments can be deleted.
>I haven't see a need for ipi_init(). When I originally
>implemented the SMP support I thought it might be.
>
>The IPI handler is statically "hooked" (aka registered) in
>	arch/parisc/kernel/irq.c:cpu_irq_actions[]
>
>See ipi_interrupt() for IPI implementation.
>
Allright (clear)
>>
>> Is there any other platform inplementing such stuff (I try to scan 2.4
src
>> but not found anywhere else) or some reference on to implement it?
>
>it == ?
>IPI is implemented.

I continue so.

BTW here is a small 2.6 back port that may be you could co safely:
--- processor.c.orig	2003-08-28 18:04:57.000000000 +0200
+++ processor.c	2003-08-28 18:08:37.000000000 +0200
@@ -370,9 +370,9 @@
 };
 
 static struct parisc_driver cpu_driver = {
-	name:		"CPU",
-	id_table:	processor_tbl,
-	probe:		processor_probe
+	.name		= "CPU",
+	.id_table	= processor_tbl,
+	.probe		= pprocessor_probe
 };
 
 /**


Many thanks again for your attention,
    Joel



-------------------------------------------------------------------------
Tiscali ADSL, seulement 35 eur/mois et le modem est inclus...abonnez-vous!
http://reg.tiscali.be/default.asp?lg=fr 



[-- Attachment #2: processor.diff --]
[-- Type: application/octet-stream, Size: 335 bytes --]

--- processor.c.orig	2003-08-28 18:04:57.000000000 +0200
+++ processor.c	2003-08-28 18:08:37.000000000 +0200
@@ -370,9 +370,9 @@
 };
 
 static struct parisc_driver cpu_driver = {
-	name:		"CPU",
-	id_table:	processor_tbl,
-	probe:		processor_probe
+	.name		= "CPU",
+	.id_table	= processor_tbl,
+	.probe		= pprocessor_probe
 };
 
 /**

^ permalink raw reply	[flat|nested] 23+ messages in thread
* Re: [parisc-linux] Re: [parisc-linux-cvs] linux carlos
@ 2003-08-25 10:03 Joel Soete
  2003-08-25 16:45 ` Grant Grundler
  0 siblings, 1 reply; 23+ messages in thread
From: Joel Soete @ 2003-08-25 10:03 UTC (permalink / raw)
  To: Grant Grundler, Joel Soete
  Cc: Grant Grundler, Carlos O'Donell, parisc-linux

>> btw: I countinue investigations but I still have to learn a lot about

>> how [id]tlb's cach are managed during cpu's startup...
>
>I thought this was a runtime problem (ie userspace <-> kernel
>interaction)
>
I still have to make some additional test and grab much more info.
In a previous mail (N4000 running SMP), I just report an interesting experience
(well for me, I would just like to reproduce it but now by collecting info
until crash and piminfo). After more thought, I figure out that printk()
just slow down the moment of panic. Never the less, where I am waiting a
panic (if I well understand Willy's idea), I got much 'itlb miss fault' followed
by 'dtlb miss fault'? So I would like to study now the early boot process
(specialy for the second cpu) to try to understand how caches (for shared
insn and data) are replicated into other CPU's [id]tlb.

> Ha yes, question: can I find PSW for each cpu in a piminfo?

yes

Can you tell me more: in a previous piminfo collected I got for CPU#3 (3
is the "address" of the second cpu)
[...]
-------  Processor 3 HPMC Information - PDC Version: 41.28   ------ 

Timestamp =    Mon Aug  11 12:56:02 GMT 2003    (20:03:08:11:12:56:02)

HPMC Chassis Codes 

       Chassis Code        Extension 
       ------------        --------- 
       0x0000082000ff6242  0x0000000000000000
       0x1800082011036322  0xcb81800000000000
       

General Registers 0 - 31
00-03  0000000000000000  0000000010536c70  0000000010115e58  00000000103aaf64
04-07  0000000000000002  00000000103ac494  0000000000000001  0000000010527470
08-11  0000000000000001  000000008f1f45b8  000000008f3cebc0  000000001057dcb0
12-15  00000000faf005f0  0000000000028280  0000000000020000  00000000faf00548
16-19  00000000faf005d0  0000000000004000  0000000000016000  0000000000000001
20-23  0000000000006061  000000001044ec08  0000000010539c70  000000001041b130
24-27  0000000000000000  000000000800000f  0000000010527c70  0000000010527470
28-31  0000000000000480  000000008f1f4e30  000000008f1f4e40  000000001052a470


Control Registers 0 - 31
00-03  0000000000000000  0000000000000000  0000000000000000  0000000000000000
04-07  0000000000000000  0000000000000000  0000000000000000  0000000000000000
08-11  0000000000000010  0000000000000000  00000000000000c0  0000000000000036
12-15  0000000000000000  0000000000000000  0000000000107000  ffe0000000000000
16-19  0000001f0fd05cbd  0000000000000000  0000000010116050  0000000008000240
20-23  0000000000000000  0000000000000000  000000000806070f  0000000000000000
24-27  0000000000453000  000000007f1f2000  0000000000041020  000000ffff95c810
28-31  000000ffff95c810  5555555555555555  000000008f1f4000  0000000000008020

Space Registers 0 - 7
00-03  00000400          00000400          00000000          00000400
04-07  00000000          00000000          00000000          00000000


IIA Space (back entry)       = 0x0000000000000000
IIA Offset (back entry)      = 0x0000000010116054
Check Type                   = 0x20000000
CPU State                    = 0x9e000004
Cache Check                  = 0x00000000
TLB Check                    = 0x00000000
Bus Check                    = 0x0030000d
Assists Check                = 0x00000000
Assist State                 = 0x00000000
Path Info                    = 0x00000000
System Responder Address     = 0xfffffffffed2d000
System Requestor Address     = 0x000000fffed2c000


Floating Point Registers 0 - 31
00-03  0000000000000000  0000000000000000  0000000000000000  0000000000000000
04-07  0000000010586ec0  0000000000000002  00000000104c7b68  0000000000000420
08-11  0000000000000000  0000000000000802  0000000010527470  000000001058a000
12-15  00000000135a0000  0000000000000000  000000001017dc84  00000000103ceb94
16-19  00000000000009f0  000000008facf000  0000000010527470  00000000135a0000
20-23  00000000103aa184  fffffffffffffff4  00000000003f45a2  000000000000ba2e
24-27  0000999900000000  00009999035a0b70  00000000035a0b78  000000001040d980
28-31  000000001040d980  00000000ff915e20  0000000010185248  0000000000000016


Check Summary                = 0xcb81800000000000
Available Memory             = 0x0000000100000000
CPU Diagnose Register 2      = 0x0301030800802004
CPU Status Register 0        = 0x3640c24000000000
CPU Status Register 1        = 0x8000000000000000
SADD LOG                     = 0x48e0000000000002
Read Short LOG               = 0xc18080ff80080014


-----------------  DEW 3 HPMC Information -  ------ 

Timestamp =    Mon Aug  11 12:56:02 GMT 2003    (20:03:08:11:12:56:02)

Runway Control Log Reg            = 0x0006720000000000
Runway Address Data Log Reg Odd   = 0xfffffffffffc3f00
Runway Address Data Log Reg Even  = 0xfffffffffffc3f00
Runway Address Log Reg            = 0x0000000000000048
Runway Broad Error Log Reg        = 0x00000000000000dc

  OV  RQ  RS      ESTAT      A  C  D  corr  unc  fe  cw  pf
  --  --  --      -----      -  -  -  ----  ---  --  --  --
  X             ERR_ERROR       X            X   X       

Merced Bus Requestor Address      = 0x0000000000000000
Merced Bus Target Address         = 0x0000000000000000
Merced Bus Responder Address      = 0x0000000000000000
Merced Error Status Reg           = 0x2001000000082004
Merced Error Overflow Reg         = 0x0000000000082000
Merced AERR Addr1 Log Reg         = 0x00c0000000300000
Merced AERR Addr2 Log Reg         = 0x0000000000f00000
Merced DERR  Log Reg              = 0x00c1100000000000
Merced Error Syndrome Reg         = 0x0000000052000000


-------  Processor 3  LPMC Information ------------------

[...] (all 0)


-------  Processor 3  TOC Information -------------------

[...] (all 0)

--------------  Memory Error Log Information  --------------

Bus 0 Log Information

Timestamp =    Mon Aug  11 12:56:02 GMT 2003    (20:03:08:11:12:56:02)

  OV  RQ  RS      ESTAT      A  C  D  corr  unc  fe  cw  pf
  --  --  --      -----      -  -  -  ----  ---  --  --  --
                ERR_ERROR       X                X       

Bus Requestor Address      = 0x0000000000000000
Bus Target Address         = 0x0000000000000000
Bus Responder Address      = 0x0000000000000000

Error Status Reg           = 0x0000000000080000
Error Overflow Reg         = 0x0000000000080000
AERR Address 1 Log Reg     = 0x0000000000000000
AERR Address 2 Log Reg     = 0xf800000000000000
FERR  Log Reg              = 0x0000000000000000
DERR  Log Reg              = 0x000112800051cdc0
Error Syndrome Reg         = 0x0000000000000000



 Address/Control Parity Error Registers  

   Address/Control Parity Error Bit (AE) Not Set 



Bus 1 Log Information

Timestamp =    Mon Aug  11 12:56:02 GMT 2003    (20:03:08:11:12:56:02)

  OV  RQ  RS      ESTAT      A  C  D  corr  unc  fe  cw  pf
  --  --  --      -----      -  -  -  ----  ---  --  --  --
               ERR_TIMEOUT   X               X           

Bus Requestor Address      = 0xfffffffffed2c000
Bus Target Address         = 0x00000000f000a000
Bus Responder Address      = 0x0000000000000000

Error Status Reg           = 0x0000000000000800
Error Overflow Reg         = 0x0000000000000800
AERR Address 1 Log Reg     = 0x08006000f000a000
AERR Address 2 Log Reg     = 0x6000b0002f700a10
FERR  Log Reg              = 0x0000000000000000
DERR  Log Reg              = 0x0000000000000000
Error Syndrome Reg         = 0x0000000000000000



 Address/Control Parity Error Registers  

   Address/Control Parity Error Bit (AE) Not Set 



------------  I/O Module Error Log Information  ------------

Summary of IO subsystem log entries
-----------------------------------
                        Phys Loc             Vendor  Device   Severity
Description             (hex)                 Id      Id      CORR UNC FE
 CW
-----------             -----                ------  ------   ----------------
System Bus Adapter SB  0x000000ffffffff82   0x103c  0x1050              X
System Bus Adapter SB  0x000000ffffffff82   0x103c  0x1050              X


Detail display of IO subsystem log entries
------------------------------------------

System Bus Adapter -- System Bus Interface
------------------------------------------

Timestamp =    Mon Aug  11 12:56:02 GMT 2003    (20:03:08:11:12:56:02)

  OV  RQ  RS      ESTAT      A  C  D  corr  unc  fe  cw  pf
  --  --  --      -----      -  -  -  ----  ---  --  --  --
  X       X     ERR_ERROR       X                X       

IO Requestor Address    = 0x0000000000000000
IO Target Address       = 0x0000000000000000
IO Responder Address    = 0xfffffffffed00000
IO Physical Location    = 0x000000ffffffff82
IO Hardware Path        = 0x00ffffffffffff00

Module Error Register   = 0x0000000007ff0034

System Bus Adapter -- System Bus Interface
------------------------------------------

Timestamp =    Mon Aug  11 12:56:02 GMT 2003    (20:03:08:11:12:56:02)

  OV  RQ  RS      ESTAT      A  C  D  corr  unc  fe  cw  pf
  --  --  --      -----      -  -  -  ----  ---  --  --  --
  X       X     ERR_ERROR       X                X       

IO Requestor Address    = 0x0000000000000000
IO Target Address       = 0x0000000000000000
IO Responder Address    = 0xfffffffffed40000
IO Physical Location    = 0x000000ffffffff82
IO Hardware Path        = 0x00ffffffffffff01

Module Error Register   = 0x0000000007ff0034

[...]

Under which field name is it hiden?

Thanks again,
    Joel



btw: a preliminary pim analyse of above mentioned piminfo reports me:
[...]
Parse IAOQ = 0x000000001010b8cc for CPU[1]

Func: update_mmu_cache, Off: 0x4, Addr: 0x1010b8cc

    1010b8c0:	37 de 3f 01 	ldo -80(sp),sp
    1010b8c4:	00 00 00 00 	break 0,0
	...
000000001010b8c8 <update_mmu_cache>:

	...
    1010b8c8:	0f c2 12 c1 	std rp,-10(,sp)
    1010b8cc:	2b 6a 20 00 	addil 15000,dp,%r1
[...]

hmm very interesting (A yes I was much trying to debug my script then actualy
reading outputs: my bad :( )

[...]
Parse IAOQ = 0x0000000010116054 for CPU[3]

Func: smp_call_function, Off: 0x274, Addr: 0x10116054

    10116050:	08 00 02 40 	nop
    10116054:	0e a0 10 d3 	ldd 0(,r21),r19
    10116058:	0a 93 04 33 	sub r19,r20,r19
    1011605c:	ee 60 ff c5 	cmpib,*> 0,r19,10116044 <smp_call_function+0x264>



-------------------------------------------------------------------------
Tiscali ADSL, seulement 35 eur/mois et le modem est inclus...abonnez-vous!
http://reg.tiscali.be/default.asp?lg=fr 

^ permalink raw reply	[flat|nested] 23+ messages in thread
* RE: [parisc-linux] Re: [parisc-linux-cvs] linux carlos
@ 2003-08-23 15:54 Joel Soete
  2003-08-23 19:28 ` Grant Grundler
  0 siblings, 1 reply; 23+ messages in thread
From: Joel Soete @ 2003-08-23 15:54 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: parisc-linux

>Congratulation, I will try it also on the N (64bits)

I grab last osdl-aim-7-0.1.9 (date Aug 04) and launch the test that Grant
mentionned (I just stop the 3d run (option -r3) with kernel without patch
because -e500 seems to take too much time: full night and I want to test

the patched kernel)

With the patch kernel I also want to launch 3 run test but with -e300 (Just
have a N obviously UP 550Mhz?).
The first two run seems to work fine when during the last run I get a lot
of messages "Child caught raw signal ?" and so I could not grab (cut and
past) the first results :( .

I now relaunch test for only two runs and so hope the results for next week,
sorry.

Thanks again,
    Joel


------------------------------------------
------------------------------
Tiscali ADSL, seulement 35 eur/mois et le modem est inclus...abonnez-vous!
http://reg.tiscali.be/default.asp?lg=
> r


_______________________________________________
parisc-linux mailing list
parisc-linux@lists.p
risc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux





-------------------------------------------------------------------------
Tiscali ADSL, seulement 35 eur/mois et le modem est inclus...abonnez-vous!
http://reg.tiscali.be/default.asp?lg=fr 

^ permalink raw reply	[flat|nested] 23+ messages in thread
[parent not found: <20030820192919.0C20349401C@palinux.hppa>]
[parent not found: <20021104004626.651BC4829@dsl2.external.hp.com>]

end of thread, other threads:[~2003-08-29 16:13 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-28  7:04 [parisc-linux] Re: [parisc-linux-cvs] linux carlos Joel Soete
2003-08-28 15:12 ` Grant Grundler
  -- strict thread matches above, loose matches on Subject: below --
2003-08-29 15:59 Joel Soete
2003-08-29 16:13 ` Grant Grundler
2003-08-28 16:08 Joel Soete
2003-08-28 16:34 ` Jim Hull
2003-08-29  7:27   ` Joel Soete
2003-08-25 10:03 Joel Soete
2003-08-25 16:45 ` Grant Grundler
2003-08-25 16:50   ` James Bottomley
2003-08-25 19:19     ` Grant Grundler
2003-08-25 19:48       ` James Bottomley
2003-08-26 17:17         ` Carlos O'Donell
2003-08-26 17:54   ` Joel Soete
2003-08-23 15:54 Joel Soete
2003-08-23 19:28 ` Grant Grundler
2003-08-24 12:51   ` Joel Soete
2003-08-24 17:19     ` Grant Grundler
2003-08-25 17:26   ` Joel Soete
2003-08-28  6:08     ` Joel Soete
     [not found] <20030820192919.0C20349401C@palinux.hppa>
2003-08-20 19:41 ` Carlos O'Donell
2003-08-21  6:21   ` Joel Soete
     [not found] <20021104004626.651BC4829@dsl2.external.hp.com>
2002-11-04  0:58 ` Carlos O'Donell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.