Linux IA64 platform development
 help / color / mirror / Atom feed
* 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