* fsys_rt_sigprocmask fastcall missing PF_FREEZE handling?
@ 2005-06-02 19:43 Christoph Lameter
2005-06-02 20:22 ` David Mosberger
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Christoph Lameter @ 2005-06-02 19:43 UTC (permalink / raw)
To: linux-ia64
I just compared fsys_rt_sigprocmask in arch/ia64/kernel/fsys.S with
kernel/signal.c and noted that there does not seem to be any handling of
the PF_FREEZE flag. This may be okay if IA64 does not support power
management but I see some adaptec drivers in SLES9 that use PF_FREEZE.
c:
fastcall void recalc_sigpending_tsk(struct task_struct *t)
{
if (t->signal->group_stop_count > 0 ||
(t->flags & PF_FREEZE) ||
PENDING(&t->pending, &t->blocked) ||
PENDING(&t->signal->shared_pending, &t->blocked))
set_tsk_thread_flag(t, TIF_SIGPENDING);
else
clear_tsk_thread_flag(t, TIF_SIGPENDING);
}
asm:
ld4 r17=[r17] // r17 <- current->signal->group_stop_count
(p7) mov r8=0 // clear error code
ld8 r19=[r19] // r19 <- current->signal->shared_pending
;;
cmp4.gt p6,p7=r17,r0 // p6/p7 <- (current->signal->group_stop_count > 0)?
(p8) mov r8=0 // clear error code
or r18=r18,r19 // r18 <- current->pending | current->signal->shared_pending
;;
// r18 <- (current->pending | current->signal->shared_pending) & ~current->blocked:
andcm r18=r18,r14
add r9=TI_FLAGS+IA64_TASK_SIZE,r16
;;
(p7) cmp.ne.or.andcm p6,p7=r18,r0 // p6/p7 <- signal pending
mov r19=0 // i must not leak kernel bits...
(p6) br.cond.dpnt.many .sig_pending
;;
1: ld4 r17=[r9] // r17 <- current->thread_info->flags
;;
mov ar.ccv=r17
and r18=~_TIF_SIGPENDING,r17 // r18 <- r17 & ~(1 << TIF_SIGPENDING)
;;
st8 [r2]=r14 // update current->blocked with new mask
cmpxchg4.acq r14=[r9],r18,ar.ccv // current->thread_info->flags <- r18
;;
cmp.ne p6,p0=r17,r14 // update failed?
(p6) br.cond.spnt.few 1b // yes -> retry
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: fsys_rt_sigprocmask fastcall missing PF_FREEZE handling?
2005-06-02 19:43 fsys_rt_sigprocmask fastcall missing PF_FREEZE handling? Christoph Lameter
@ 2005-06-02 20:22 ` David Mosberger
2005-06-02 20:28 ` Christoph Lameter
2005-06-02 21:21 ` David Mosberger
2 siblings, 0 replies; 4+ messages in thread
From: David Mosberger @ 2005-06-02 20:22 UTC (permalink / raw)
To: linux-ia64
>>>>> On Thu, 2 Jun 2005 12:43:59 -0700 (PDT), Christoph Lameter <clameter@engr.sgi.com> said:
Christoph> I just compared fsys_rt_sigprocmask in
Christoph> arch/ia64/kernel/fsys.S with kernel/signal.c and noted
Christoph> that there does not seem to be any handling of the
Christoph> PF_FREEZE flag. This may be okay if IA64 does not support
Christoph> power management but I see some adaptec drivers in SLES9
Christoph> that use PF_FREEZE.
What tree are you looking at? mm? I don't see PF_FREEZE in Linus' tree.
--david
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: fsys_rt_sigprocmask fastcall missing PF_FREEZE handling?
2005-06-02 19:43 fsys_rt_sigprocmask fastcall missing PF_FREEZE handling? Christoph Lameter
2005-06-02 20:22 ` David Mosberger
@ 2005-06-02 20:28 ` Christoph Lameter
2005-06-02 21:21 ` David Mosberger
2 siblings, 0 replies; 4+ messages in thread
From: Christoph Lameter @ 2005-06-02 20:28 UTC (permalink / raw)
To: linux-ia64
On Thu, 2 Jun 2005, David Mosberger wrote:
> >>>>> On Thu, 2 Jun 2005 12:43:59 -0700 (PDT), Christoph Lameter <clameter@engr.sgi.com> said:
>
> Christoph> I just compared fsys_rt_sigprocmask in
> Christoph> arch/ia64/kernel/fsys.S with kernel/signal.c and noted
> Christoph> that there does not seem to be any handling of the
> Christoph> PF_FREEZE flag. This may be okay if IA64 does not support
> Christoph> power management but I see some adaptec drivers in SLES9
> Christoph> that use PF_FREEZE.
>
> What tree are you looking at? mm? I don't see PF_FREEZE in Linus' tree.
I was looking at mm and Sles 9.
PF_FREEZE is in all trees. But the check for PF_FREEZE is missing from
racalc_sigpending_tsk in Linus tree it seems.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: fsys_rt_sigprocmask fastcall missing PF_FREEZE handling?
2005-06-02 19:43 fsys_rt_sigprocmask fastcall missing PF_FREEZE handling? Christoph Lameter
2005-06-02 20:22 ` David Mosberger
2005-06-02 20:28 ` Christoph Lameter
@ 2005-06-02 21:21 ` David Mosberger
2 siblings, 0 replies; 4+ messages in thread
From: David Mosberger @ 2005-06-02 21:21 UTC (permalink / raw)
To: linux-ia64
>>>>> On Thu, 2 Jun 2005 13:28:21 -0700 (PDT), Christoph Lameter <clameter@engr.sgi.com> said:
Christoph> On Thu, 2 Jun 2005, David Mosberger wrote:
>> >>>>> On Thu, 2 Jun 2005 12:43:59 -0700 (PDT), Christoph Lameter <clameter@engr.sgi.com> said:
Christoph> I just compared fsys_rt_sigprocmask in
Christoph> arch/ia64/kernel/fsys.S with kernel/signal.c and noted
Christoph> that there does not seem to be any handling of the
Christoph> PF_FREEZE flag. This may be okay if IA64 does not support
Christoph> power management but I see some adaptec drivers in SLES9
Christoph> that use PF_FREEZE.
>> What tree are you looking at? mm? I don't see PF_FREEZE in Linus' tree.
Christoph> I was looking at mm and Sles 9.
Christoph> PF_FREEZE is in all trees. But the check for PF_FREEZE is
Christoph> missing from racalc_sigpending_tsk in Linus tree it
Christoph> seems.
That would explain why it's missing. Clearly you'd want the
light-weight version of sigprocmask to be consistent with the
heavy-weight version (as is the case for Linus' tree).
--david
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-06-02 21:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-02 19:43 fsys_rt_sigprocmask fastcall missing PF_FREEZE handling? Christoph Lameter
2005-06-02 20:22 ` David Mosberger
2005-06-02 20:28 ` Christoph Lameter
2005-06-02 21:21 ` David Mosberger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox