From: "Michael S. Zick" <mszick@morethan.org>
To: parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] Does it lakes some cloberred r1 in
Date: Sun, 23 Apr 2006 11:18:51 -0500 [thread overview]
Message-ID: <200604231118.51833.mszick@morethan.org> (raw)
In-Reply-To: <200604221648.k3MGm2MW010955@hiauly1.hia.nrc.ca>
On Sat April 22 2006 11:48, John David Anglin wrote:
> > On Fri, Apr 21, 2006 at 04:30:08PM -0400, John David Anglin wrote:
> > > > 101112c4: e8 1f 1f df b,l,n 101112b8 <_read_lock+0x8>,r0
> > > > 101112c8: 0f 48 10 9c ldw 4(r26),ret0 <== exception here
> > > >
> > > > r26 contains 0x105d62a8 according to Joel's message. There isn't
> > > > a branch in the delay slot. The exception just occurs in the delay
> > > > slot of a branch. It's not obvious to me what caused the exception.
> > >
> > > Correction, r26 contained 0x000000001051d040. I also just noticed
> > > that the branch is nullified (N=1 in PSW). Just guessing, but I think
> > > this is a timer interruption (soft lockup).
> > >
> >
> > This crashed palinux last night... Same IIR/IASQIAOQ...
>
> Actually, it's probably just a nice place to crash for the night ;)
>
> Any info on the interruption and what was going on? In Joel's case,
> the call was from here:
>
> int
> send_group_sig_info(int sig, struct siginfo *info, struct task_struct *p)
> {
> int ret;
> read_lock(&tasklist_lock);
> ret = group_send_sig_info(sig, info, p);
> read_unlock(&tasklist_lock);
> return ret;
> }
>
> tasklist_lock is used in a lot of places. send_group_sig_info only
> seems to be called in one place from kernel/itimer.c. It would seem
> like there's some situation where the lock isn't getting unlocked,
> or it's very highly contended.
>
Or the routine is not coded to make the lock instruction observable
by all processors:
> This the read lock I see in vmlinux-2.6.15-rc2-pa1:
>
> 00000000101112b0 <_read_lock>:
>
> 101112b0: 0f 40 15 dc ldcw,co 0(r26),ret0
<format 5 instruction: 0000011 11010 00000 00 0 1 01 0111 0 11100>
a==0,s==0,b==26,t==28
cc==01 Coherent Operation, not a hint but required[1];
Processor may operate on line in cache rather than update memory[2];
<quote [3]>
If a cache control hint is specified, the semaphore operation may be handled
as if a cache control hint had not been specified, or, preferably, the addressed
word is zero extended and copied into GR t and then the addressed word is set to
zero in the cache. The cleared word need not be flushed to memory.
</quote>;
<quote [4]>
if (cache line is present and dirty || coherent_system || cc != 0) {
GR[t] <- mem_load(space,offset,0,63,NO_HINT);
mem_store(space,offset,0,63,NO_HINT,0);
} else {
Dcache_flush(space,offset);
GR[t] <- mem_load(space,offset,0,63,NO_HINT);
store_in_memory(space,offset,0,63,NO_HINT,0);
}
</quote>;
Note that the first block is selected by ((cc == 01) != 00)
The first block describes the operation required for semaphores used
by multiple execution paths on a single processor.
The second block (after the else) describes the operation required
for execution paths on multiple processors.
[1]: http://h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,5310,00.html
[2]: http://h21007.www2.hp.com/dspp/files/unprotected/parisc20/PA_6_inst_overview.pdf; page 13 and table 6-9
[3]: http://h21007.www2.hp.com/dspp/files/unprotected/parisc20/PA_7_inst_descriptions.pdf; page 74 and 75
[4]: ibid. 'indivisible', page 75
Next question.
Mike
> Dave
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
next prev parent reply other threads:[~2006-04-23 16:18 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20060422154641.GC10514@quicksilver.road.mcmartin.ca>
2006-04-22 16:48 ` [parisc-linux] Does it lakes some cloberred r1 in John David Anglin
2006-04-23 16:18 ` Michael S. Zick [this message]
2006-04-23 17:06 ` Michael S. Zick
2006-04-24 15:35 ` John David Anglin
2006-04-24 16:25 ` Grant Grundler
2006-04-24 16:50 ` John David Anglin
2006-04-24 18:55 ` John David Anglin
2006-04-25 0:38 ` Grant Grundler
2006-04-26 16:42 ` Michael S. Zick
2006-04-24 16:35 ` Michael S. Zick
2006-04-24 18:00 ` Michael S. Zick
2006-04-24 19:15 ` John David Anglin
2006-04-24 21:57 ` Michael S. Zick
2006-04-24 22:40 ` John David Anglin
2006-04-24 18:46 ` John David Anglin
2006-04-24 19:12 ` Michael S. Zick
2006-04-24 21:07 ` John David Anglin
2006-04-25 15:17 ` Michael S. Zick
2006-04-25 18:52 ` Michael S. Zick
2006-04-25 21:42 ` John David Anglin
[not found] <200604212013.k3LKDAbx003500@hiauly1.hia.nrc.ca>
2006-04-21 20:30 ` John David Anglin
2006-04-20 17:09 [parisc-linux] Does it lakes some cloberred r1 in __put_kernel_asm() 64bit? Carlos O'Donell
2006-04-20 17:28 ` [parisc-linux] Does it lakes some cloberred r1 in John David Anglin
2006-04-20 17:36 ` Michael S. Zick
2006-04-20 19:32 ` John David Anglin
2006-04-20 20:21 ` Michael S. Zick
2006-04-20 20:04 ` Carlos O'Donell
2006-04-20 21:29 ` John David Anglin
2006-04-21 18:52 ` Michael S. Zick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200604231118.51833.mszick@morethan.org \
--to=mszick@morethan.org \
--cc=parisc-linux@lists.parisc-linux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox