public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
@ 2020-10-29 16:15 Jens Axboe
  2020-11-05 16:18 ` Jens Axboe
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Jens Axboe @ 2020-10-29 16:15 UTC (permalink / raw)
  To: linux-ia64

Wire up TIF_NOTIFY_SIGNAL handling for ia64.

Cc: linux-ia64@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
---

5.11 has support queued up for TIF_NOTIFY_SIGNAL, see this posting
for details:

https://lore.kernel.org/io-uring/20201026203230.386348-1-axboe@kernel.dk/

As part of that work, I'm adding TIF_NOTIFY_SIGNAL support to all archs,
as that will enable a set of cleanups once all of them support it. I'm
happy carrying this patch if need be, or it can be funelled through the
arch tree. Let me know.

 arch/ia64/include/asm/thread_info.h | 4 +++-
 arch/ia64/kernel/process.c          | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h
index 64a1011f6812..759d7d68a5f2 100644
--- a/arch/ia64/include/asm/thread_info.h
+++ b/arch/ia64/include/asm/thread_info.h
@@ -104,6 +104,7 @@ struct thread_info {
 #define TIF_SYSCALL_AUDIT	3	/* syscall auditing active */
 #define TIF_SINGLESTEP		4	/* restore singlestep on return to user mode */
 #define TIF_NOTIFY_RESUME	6	/* resumption notification requested */
+#define TIF_NOTIFY_SIGNAL	7	/* signal notification exist */
 #define TIF_MEMDIE		17	/* is terminating due to OOM killer */
 #define TIF_MCA_INIT		18	/* this task is processing MCA or INIT */
 #define TIF_DB_DISABLED		19	/* debug trap disabled for fsyscall */
@@ -115,6 +116,7 @@ struct thread_info {
 #define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
 #define _TIF_SYSCALL_TRACEAUDIT	(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP)
 #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME)
+#define _TIF_SIGNAL_NOTIFY	(1 << TIF_SIGNAL_NOTIFY)
 #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
 #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
 #define _TIF_MCA_INIT		(1 << TIF_MCA_INIT)
@@ -124,7 +126,7 @@ struct thread_info {
 
 /* "work to do on user-return" bits */
 #define TIF_ALLWORK_MASK	(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SYSCALL_AUDIT|\
-				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE)
+				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE|_TIF_NOTIFY_SIGNAL)
 /* like TIF_ALLWORK_BITS but sans TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT */
 #define TIF_WORK_MASK		(TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT))
 
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 6b61a703bcf5..0e0146daa88d 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -171,7 +171,8 @@ do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall)
 	}
 
 	/* deal with pending signal delivery */
-	if (test_thread_flag(TIF_SIGPENDING)) {
+	if (test_thread_flag(TIF_SIGPENDING) ||
+	    test_thread_flags(TIF_NOTIFY_SIGNAL)) {
 		local_irq_enable();	/* force interrupt enable */
 		ia64_do_signal(scr, in_syscall);
 	}
-- 
2.29.0

-- 
Jens Axboe

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
@ 2020-11-05 16:18 ` Jens Axboe
  2021-01-19  1:50 ` John Paul Adrian Glaubitz
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2020-11-05 16:18 UTC (permalink / raw)
  To: linux-ia64

Gentle nudge on this one.

On 10/29/20 10:15 AM, Jens Axboe wrote:
> Wire up TIF_NOTIFY_SIGNAL handling for ia64.
> 
> Cc: linux-ia64@vger.kernel.org
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> ---
> 
> 5.11 has support queued up for TIF_NOTIFY_SIGNAL, see this posting
> for details:
> 
> https://lore.kernel.org/io-uring/20201026203230.386348-1-axboe@kernel.dk/
> 
> As part of that work, I'm adding TIF_NOTIFY_SIGNAL support to all archs,
> as that will enable a set of cleanups once all of them support it. I'm
> happy carrying this patch if need be, or it can be funelled through the
> arch tree. Let me know.
> 
>  arch/ia64/include/asm/thread_info.h | 4 +++-
>  arch/ia64/kernel/process.c          | 3 ++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h
> index 64a1011f6812..759d7d68a5f2 100644
> --- a/arch/ia64/include/asm/thread_info.h
> +++ b/arch/ia64/include/asm/thread_info.h
> @@ -104,6 +104,7 @@ struct thread_info {
>  #define TIF_SYSCALL_AUDIT	3	/* syscall auditing active */
>  #define TIF_SINGLESTEP		4	/* restore singlestep on return to user mode */
>  #define TIF_NOTIFY_RESUME	6	/* resumption notification requested */
> +#define TIF_NOTIFY_SIGNAL	7	/* signal notification exist */
>  #define TIF_MEMDIE		17	/* is terminating due to OOM killer */
>  #define TIF_MCA_INIT		18	/* this task is processing MCA or INIT */
>  #define TIF_DB_DISABLED		19	/* debug trap disabled for fsyscall */
> @@ -115,6 +116,7 @@ struct thread_info {
>  #define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
>  #define _TIF_SYSCALL_TRACEAUDIT	(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP)
>  #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME)
> +#define _TIF_SIGNAL_NOTIFY	(1 << TIF_SIGNAL_NOTIFY)
>  #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
>  #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
>  #define _TIF_MCA_INIT		(1 << TIF_MCA_INIT)
> @@ -124,7 +126,7 @@ struct thread_info {
>  
>  /* "work to do on user-return" bits */
>  #define TIF_ALLWORK_MASK	(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SYSCALL_AUDIT|\
> -				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE)
> +				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE|_TIF_NOTIFY_SIGNAL)
>  /* like TIF_ALLWORK_BITS but sans TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT */
>  #define TIF_WORK_MASK		(TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT))
>  
> diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
> index 6b61a703bcf5..0e0146daa88d 100644
> --- a/arch/ia64/kernel/process.c
> +++ b/arch/ia64/kernel/process.c
> @@ -171,7 +171,8 @@ do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall)
>  	}
>  
>  	/* deal with pending signal delivery */
> -	if (test_thread_flag(TIF_SIGPENDING)) {
> +	if (test_thread_flag(TIF_SIGPENDING) ||
> +	    test_thread_flags(TIF_NOTIFY_SIGNAL)) {
>  		local_irq_enable();	/* force interrupt enable */
>  		ia64_do_signal(scr, in_syscall);
>  	}
> 


-- 
Jens Axboe

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
  2020-11-05 16:18 ` Jens Axboe
@ 2021-01-19  1:50 ` John Paul Adrian Glaubitz
  2021-01-20 16:08 ` Jens Axboe
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-19  1:50 UTC (permalink / raw)
  To: linux-ia64

Hi Jens!

On 10/29/20 5:15 PM, Jens Axboe wrote:
> Wire up TIF_NOTIFY_SIGNAL handling for ia64.
> 
> Cc: linux-ia64@vger.kernel.org
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> ---
> 
> 5.11 has support queued up for TIF_NOTIFY_SIGNAL, see this posting
> for details:
> 
> https://lore.kernel.org/io-uring/20201026203230.386348-1-axboe@kernel.dk/
> 
> As part of that work, I'm adding TIF_NOTIFY_SIGNAL support to all archs,
> as that will enable a set of cleanups once all of them support it. I'm
> happy carrying this patch if need be, or it can be funelled through the
> arch tree. Let me know.
> 
>  arch/ia64/include/asm/thread_info.h | 4 +++-
>  arch/ia64/kernel/process.c          | 3 ++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h
> index 64a1011f6812..759d7d68a5f2 100644
> --- a/arch/ia64/include/asm/thread_info.h
> +++ b/arch/ia64/include/asm/thread_info.h
> @@ -104,6 +104,7 @@ struct thread_info {
>  #define TIF_SYSCALL_AUDIT	3	/* syscall auditing active */
>  #define TIF_SINGLESTEP		4	/* restore singlestep on return to user mode */
>  #define TIF_NOTIFY_RESUME	6	/* resumption notification requested */
> +#define TIF_NOTIFY_SIGNAL	7	/* signal notification exist */
>  #define TIF_MEMDIE		17	/* is terminating due to OOM killer */
>  #define TIF_MCA_INIT		18	/* this task is processing MCA or INIT */
>  #define TIF_DB_DISABLED		19	/* debug trap disabled for fsyscall */
> @@ -115,6 +116,7 @@ struct thread_info {
>  #define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
>  #define _TIF_SYSCALL_TRACEAUDIT	(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP)
>  #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME)
> +#define _TIF_SIGNAL_NOTIFY	(1 << TIF_SIGNAL_NOTIFY)
>  #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
>  #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
>  #define _TIF_MCA_INIT		(1 << TIF_MCA_INIT)
> @@ -124,7 +126,7 @@ struct thread_info {
>  
>  /* "work to do on user-return" bits */
>  #define TIF_ALLWORK_MASK	(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SYSCALL_AUDIT|\
> -				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE)
> +				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE|_TIF_NOTIFY_SIGNAL)
>  /* like TIF_ALLWORK_BITS but sans TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT */
>  #define TIF_WORK_MASK		(TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT))
>  
> diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
> index 6b61a703bcf5..0e0146daa88d 100644
> --- a/arch/ia64/kernel/process.c
> +++ b/arch/ia64/kernel/process.c
> @@ -171,7 +171,8 @@ do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall)
>  	}
>  
>  	/* deal with pending signal delivery */
> -	if (test_thread_flag(TIF_SIGPENDING)) {
> +	if (test_thread_flag(TIF_SIGPENDING) ||
> +	    test_thread_flags(TIF_NOTIFY_SIGNAL)) {
>  		local_irq_enable();	/* force interrupt enable */
>  		ia64_do_signal(scr, in_syscall);
>  	}
> 

This change broke the hpsa driver on my RX-2600 ia64 workstation in the sense that the
driver no longer loads and hence hard disks are no longer recognized.

Any idea what could be wrong?

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
  2020-11-05 16:18 ` Jens Axboe
  2021-01-19  1:50 ` John Paul Adrian Glaubitz
@ 2021-01-20 16:08 ` Jens Axboe
  2021-01-20 16:09 ` John Paul Adrian Glaubitz
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2021-01-20 16:08 UTC (permalink / raw)
  To: linux-ia64

On 1/18/21 6:50 PM, John Paul Adrian Glaubitz wrote:
> Hi Jens!
> 
> On 10/29/20 5:15 PM, Jens Axboe wrote:
>> Wire up TIF_NOTIFY_SIGNAL handling for ia64.
>>
>> Cc: linux-ia64@vger.kernel.org
>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
>> ---
>>
>> 5.11 has support queued up for TIF_NOTIFY_SIGNAL, see this posting
>> for details:
>>
>> https://lore.kernel.org/io-uring/20201026203230.386348-1-axboe@kernel.dk/
>>
>> As part of that work, I'm adding TIF_NOTIFY_SIGNAL support to all archs,
>> as that will enable a set of cleanups once all of them support it. I'm
>> happy carrying this patch if need be, or it can be funelled through the
>> arch tree. Let me know.
>>
>>  arch/ia64/include/asm/thread_info.h | 4 +++-
>>  arch/ia64/kernel/process.c          | 3 ++-
>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h
>> index 64a1011f6812..759d7d68a5f2 100644
>> --- a/arch/ia64/include/asm/thread_info.h
>> +++ b/arch/ia64/include/asm/thread_info.h
>> @@ -104,6 +104,7 @@ struct thread_info {
>>  #define TIF_SYSCALL_AUDIT	3	/* syscall auditing active */
>>  #define TIF_SINGLESTEP		4	/* restore singlestep on return to user mode */
>>  #define TIF_NOTIFY_RESUME	6	/* resumption notification requested */
>> +#define TIF_NOTIFY_SIGNAL	7	/* signal notification exist */
>>  #define TIF_MEMDIE		17	/* is terminating due to OOM killer */
>>  #define TIF_MCA_INIT		18	/* this task is processing MCA or INIT */
>>  #define TIF_DB_DISABLED		19	/* debug trap disabled for fsyscall */
>> @@ -115,6 +116,7 @@ struct thread_info {
>>  #define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
>>  #define _TIF_SYSCALL_TRACEAUDIT	(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP)
>>  #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME)
>> +#define _TIF_SIGNAL_NOTIFY	(1 << TIF_SIGNAL_NOTIFY)
>>  #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
>>  #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
>>  #define _TIF_MCA_INIT		(1 << TIF_MCA_INIT)
>> @@ -124,7 +126,7 @@ struct thread_info {
>>  
>>  /* "work to do on user-return" bits */
>>  #define TIF_ALLWORK_MASK	(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SYSCALL_AUDIT|\
>> -				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE)
>> +				 _TIF_NEED_RESCHED|_TIF_SYSCALL_TRACE|_TIF_NOTIFY_SIGNAL)
>>  /* like TIF_ALLWORK_BITS but sans TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT */
>>  #define TIF_WORK_MASK		(TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT))
>>  
>> diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
>> index 6b61a703bcf5..0e0146daa88d 100644
>> --- a/arch/ia64/kernel/process.c
>> +++ b/arch/ia64/kernel/process.c
>> @@ -171,7 +171,8 @@ do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall)
>>  	}
>>  
>>  	/* deal with pending signal delivery */
>> -	if (test_thread_flag(TIF_SIGPENDING)) {
>> +	if (test_thread_flag(TIF_SIGPENDING) ||
>> +	    test_thread_flags(TIF_NOTIFY_SIGNAL)) {
>>  		local_irq_enable();	/* force interrupt enable */
>>  		ia64_do_signal(scr, in_syscall);
>>  	}
>>
> 
> This change broke the hpsa driver on my RX-2600 ia64 workstation in the sense that the
> driver no longer loads and hence hard disks are no longer recognized.

What does "no longer loads" mean? Does it hang?

> Any idea what could be wrong?

Can you try current -git? There's a task_work related fix in there which is
related to this series, maybe that's it...

-- 
Jens Axboe

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
                   ` (2 preceding siblings ...)
  2021-01-20 16:08 ` Jens Axboe
@ 2021-01-20 16:09 ` John Paul Adrian Glaubitz
  2021-01-20 16:12 ` Jens Axboe
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-20 16:09 UTC (permalink / raw)
  To: linux-ia64

On 1/20/21 5:08 PM, Jens Axboe wrote:
>> This change broke the hpsa driver on my RX-2600 ia64 workstation in the sense that the
>> driver no longer loads and hence hard disks are no longer recognized.
> 
> What does "no longer loads" mean? Does it hang?

It does not load at all. The driver no longer shows up in the kernel message buffer
and therefore no disks are found.

>> Any idea what could be wrong?
> 
> Can you try current -git? There's a task_work related fix in there which is
> related to this series, maybe that's it...

I can. However, I already tested 5.11-rc4 before I sent the mail.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
                   ` (3 preceding siblings ...)
  2021-01-20 16:09 ` John Paul Adrian Glaubitz
@ 2021-01-20 16:12 ` Jens Axboe
  2021-01-28 22:42 ` Jens Axboe
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2021-01-20 16:12 UTC (permalink / raw)
  To: linux-ia64

On 1/20/21 9:09 AM, John Paul Adrian Glaubitz wrote:
> On 1/20/21 5:08 PM, Jens Axboe wrote:
>>> This change broke the hpsa driver on my RX-2600 ia64 workstation in the sense that the
>>> driver no longer loads and hence hard disks are no longer recognized.
>>
>> What does "no longer loads" mean? Does it hang?
> 
> It does not load at all. The driver no longer shows up in the kernel message buffer
> and therefore no disks are found.

Really should be no relation there at all. Is it built-in or modular?

>>> Any idea what could be wrong?
>>
>> Can you try current -git? There's a task_work related fix in there which is
>> related to this series, maybe that's it...
> 
> I can. However, I already tested 5.11-rc4 before I sent the mail.

-rc4 doesn't have the fix, it wasn't merged until yesterday. I doubt
that it's related to this though...

-- 
Jens Axboe

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
                   ` (4 preceding siblings ...)
  2021-01-20 16:12 ` Jens Axboe
@ 2021-01-28 22:42 ` Jens Axboe
  2021-01-28 22:45 ` Jens Axboe
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2021-01-28 22:42 UTC (permalink / raw)
  To: linux-ia64

On 1/28/21 12:22 PM, John Paul Adrian Glaubitz wrote:
> Hi Jens!
> 
> On 1/20/21 5:08 PM, Jens Axboe wrote:
>>> This change broke the hpsa driver on my RX-2600 ia64 workstation in the sense that the
>>> driver no longer loads and hence hard disks are no longer recognized.
>>
>> What does "no longer loads" mean? Does it hang?
>>
>>> Any idea what could be wrong?
>>
>> Can you try current -git? There's a task_work related fix in there which is
>> related to this series, maybe that's it...
> 
> I just tried Linus' current tree (ge5ff2cb9cf67) and the problem still persists.

Funky... Can you see if this helps?

diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index e67b22fc3c60..7de57ace4799 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -358,9 +358,6 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
 			 */
 			restart = 0;
 
-		if (ksig.sig <= 0)
-			break;
-
 		if (unlikely(restart)) {
 			switch (errno) {
 			case ERESTART_RESTARTBLOCK:
@@ -381,6 +378,9 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
 			}
 		}
 
+		if (ksig.sig <= 0)
+			break;
+
 		/*
 		 * Whee!  Actually deliver the signal.  If the delivery failed, we need to
 		 * continue to iterate in this loop so we can deliver the SIGSEGV...

-- 
Jens Axboe

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
                   ` (5 preceding siblings ...)
  2021-01-28 22:42 ` Jens Axboe
@ 2021-01-28 22:45 ` Jens Axboe
  2021-01-28 22:51 ` John Paul Adrian Glaubitz
  2021-01-28 22:56 ` Jens Axboe
  8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2021-01-28 22:45 UTC (permalink / raw)
  To: linux-ia64

On 1/28/21 3:42 PM, Jens Axboe wrote:
> On 1/28/21 12:22 PM, John Paul Adrian Glaubitz wrote:
>> Hi Jens!
>>
>> On 1/20/21 5:08 PM, Jens Axboe wrote:
>>>> This change broke the hpsa driver on my RX-2600 ia64 workstation in the sense that the
>>>> driver no longer loads and hence hard disks are no longer recognized.
>>>
>>> What does "no longer loads" mean? Does it hang?
>>>
>>>> Any idea what could be wrong?
>>>
>>> Can you try current -git? There's a task_work related fix in there which is
>>> related to this series, maybe that's it...
>>
>> I just tried Linus' current tree (ge5ff2cb9cf67) and the problem still persists.
> 
> Funky... Can you see if this helps?

Actually, this one might be better.

diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index e67b22fc3c60..22d825f26668 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -340,7 +340,7 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
 	 * This only loops in the rare cases of handle_signal() failing, in which case we
 	 * need to push through a forced SIGSEGV.
 	 */
-	while (1) {
+	do {
 		get_signal(&ksig);
 
 		/*
@@ -358,9 +358,6 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
 			 */
 			restart = 0;
 
-		if (ksig.sig <= 0)
-			break;
-
 		if (unlikely(restart)) {
 			switch (errno) {
 			case ERESTART_RESTARTBLOCK:
@@ -387,7 +384,7 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
 		 */
 		if (handle_signal(&ksig, scr))
 			return;
-	}
+	} while (ksig.sig > 0);
 
 	/* Did we come from a system call? */
 	if (restart) {

-- 
Jens Axboe

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
                   ` (6 preceding siblings ...)
  2021-01-28 22:45 ` Jens Axboe
@ 2021-01-28 22:51 ` John Paul Adrian Glaubitz
  2021-01-28 22:56 ` Jens Axboe
  8 siblings, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-28 22:51 UTC (permalink / raw)
  To: linux-ia64

On 1/28/21 11:42 PM, Jens Axboe wrote:
>> I just tried Linus' current tree (ge5ff2cb9cf67) and the problem still persists.
> 
> Funky... Can you see if this helps?
> 
> diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
> index e67b22fc3c60..7de57ace4799 100644
> --- a/arch/ia64/kernel/signal.c
> +++ b/arch/ia64/kernel/signal.c
> @@ -358,9 +358,6 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
>  			 */
>  			restart = 0;
>  
> -		if (ksig.sig <= 0)
> -			break;
> -
>  		if (unlikely(restart)) {
>  			switch (errno) {
>  			case ERESTART_RESTARTBLOCK:
> @@ -381,6 +378,9 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
>  			}
>  		}
>  
> +		if (ksig.sig <= 0)
> +			break;
> +
>  		/*
>  		 * Whee!  Actually deliver the signal.  If the delivery failed, we need to
>  		 * continue to iterate in this loop so we can deliver the SIGSEGV...

This one doesn't help. Will try the other in a minute.

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL
  2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
                   ` (7 preceding siblings ...)
  2021-01-28 22:51 ` John Paul Adrian Glaubitz
@ 2021-01-28 22:56 ` Jens Axboe
  8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2021-01-28 22:56 UTC (permalink / raw)
  To: linux-ia64

On 1/28/21 3:51 PM, John Paul Adrian Glaubitz wrote:
> On 1/28/21 11:42 PM, Jens Axboe wrote:
>>> I just tried Linus' current tree (ge5ff2cb9cf67) and the problem still persists.
>>
>> Funky... Can you see if this helps?
>>
>> diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
>> index e67b22fc3c60..7de57ace4799 100644
>> --- a/arch/ia64/kernel/signal.c
>> +++ b/arch/ia64/kernel/signal.c
>> @@ -358,9 +358,6 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
>>  			 */
>>  			restart = 0;
>>  
>> -		if (ksig.sig <= 0)
>> -			break;
>> -
>>  		if (unlikely(restart)) {
>>  			switch (errno) {
>>  			case ERESTART_RESTARTBLOCK:
>> @@ -381,6 +378,9 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
>>  			}
>>  		}
>>  
>> +		if (ksig.sig <= 0)
>> +			break;
>> +
>>  		/*
>>  		 * Whee!  Actually deliver the signal.  If the delivery failed, we need to
>>  		 * continue to iterate in this loop so we can deliver the SIGSEGV...
> 
> This one doesn't help. Will try the other in a minute.

Also looks like you might need to add a:

	ksig.sig = 0;

right above get_signal(), just in case. For the 2nd patch, I mean. But thanks
for testing, interested if the other one will do it...

-- 
Jens Axboe

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-01-28 22:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-29 16:15 [PATCH] ia64: add support for TIF_NOTIFY_SIGNAL Jens Axboe
2020-11-05 16:18 ` Jens Axboe
2021-01-19  1:50 ` John Paul Adrian Glaubitz
2021-01-20 16:08 ` Jens Axboe
2021-01-20 16:09 ` John Paul Adrian Glaubitz
2021-01-20 16:12 ` Jens Axboe
2021-01-28 22:42 ` Jens Axboe
2021-01-28 22:45 ` Jens Axboe
2021-01-28 22:51 ` John Paul Adrian Glaubitz
2021-01-28 22:56 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox