Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 23:41, Oleg Nesterov пишет: On 02/01, Stas Sergeev wrote: 01.02.2016 22:29, Oleg Nesterov пишет: sigaltstack({ DISABLE | FORCE}, _ss); swapcontext(); sigaltstack(_ss, NULL); rt_sigreturn(); and if you are going to return from sighandler you do not

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > 01.02.2016 22:29, Oleg Nesterov пишет: > >>> > >>> sigaltstack({ DISABLE | FORCE}, _ss); > >>> swapcontext(); > >>> sigaltstack(_ss, NULL); > >>> rt_sigreturn(); > >>> > >>>and if you are going to return from sighandler you do not even need the 2nd >

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 22:29, Oleg Nesterov пишет: On 02/01, Stas Sergeev wrote: 01.02.2016 21:52, Oleg Nesterov пишет: Stas, I probably missed something, but I don't understand your concerns, On 02/01, Stas Sergeev wrote: 01.02.2016 21:04, Oleg Nesterov пишет: Yes, and SS_FORCE means "I know what I

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > 01.02.2016 21:52, Oleg Nesterov пишет: > >Stas, I probably missed something, but I don't understand your concerns, > > > >On 02/01, Stas Sergeev wrote: > >>01.02.2016 21:04, Oleg Nesterov пишет: > >>>Yes, and SS_FORCE means "I know what I do", looks very simple. >

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 21:52, Oleg Nesterov пишет: Stas, I probably missed something, but I don't understand your concerns, On 02/01, Stas Sergeev wrote: 01.02.2016 21:04, Oleg Nesterov пишет: Yes, and SS_FORCE means "I know what I do", looks very simple. But to me its not because I don't know what to

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
Stas, I probably missed something, but I don't understand your concerns, On 02/01, Stas Sergeev wrote: > > 01.02.2016 21:04, Oleg Nesterov пишет: > > Yes, and SS_FORCE means "I know what I do", looks very simple. > But to me its not because I don't know what to do with > uc_stack after SS_FORCE

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 21:28, Andy Lutomirski пишет: On Mon, Feb 1, 2016 at 10:16 AM, Stas Sergeev wrote: 01.02.2016 21:04, Oleg Nesterov пишет: Yes, and SS_FORCE means "I know what I do", looks very simple. But to me its not because I don't know what to do with uc_stack after SS_FORCE is applied. I

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Andy Lutomirski
On Mon, Feb 1, 2016 at 10:16 AM, Stas Sergeev wrote: > 01.02.2016 21:04, Oleg Nesterov пишет: >> Yes, and SS_FORCE means "I know what I do", looks very simple. > But to me its not because I don't know what to do with > uc_stack after SS_FORCE is applied. > >> I won't argue, but to me it would be

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 21:04, Oleg Nesterov пишет: > Yes, and SS_FORCE means "I know what I do", looks very simple. But to me its not because I don't know what to do with uc_stack after SS_FORCE is applied. I won't argue, but to me it would be better to keep this EPERM if !force. Just because we should

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > 01.02.2016 20:09, Oleg Nesterov пишет: > >OK, I didn't notice you modified save_altstack_ex() to use ->sas_ss_flags > >instead > >of sas_ss_flags()... still doesn't look right, in this case > >restore_altstack() will > >not restore sas_ss_size/sas_ss_sp and they

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > >So the sequence is > > > > // running on alt stack > > > > sigaltstack(SS_DISABLE); > > > > temporary_run_on_another_stack(); > > > > sigaltstack(SS_ONSTACK); > > > >and SS_DISABLE saves us from another SA_ONSTACK signal, right? > Yes. > Note:

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 20:09, Oleg Nesterov пишет: On 02/01, Oleg Nesterov wrote: +onsigstack = on_sig_stack(sp); +if (ss_size == 0) { +switch (ss_flags) { +case 0: +error = -EPERM; +if (onsigstack) +goto out; +

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Oleg Nesterov wrote: > > > +onsigstack = on_sig_stack(sp); > > +if (ss_size == 0) { > > +switch (ss_flags) { > > +case 0: > > +error = -EPERM; > > +if (onsigstack) > > +goto out; > > +

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 19:06, Oleg Nesterov пишет: Honestly, I am not sure I understand what this patch does and why, and it is white space damaged, please fix. Arrr. On 01/31, Stas Sergeev wrote: linux implements the sigaltstack() in a way that makes it impossible to use with swapcontext(). Per the man

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
Honestly, I am not sure I understand what this patch does and why, and it is white space damaged, please fix. On 01/31, Stas Sergeev wrote: > > linux implements the sigaltstack() in a way that makes it impossible to > use with swapcontext(). Per the man page, sigaltstack is allowed to return >

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 21:52, Oleg Nesterov пишет: Stas, I probably missed something, but I don't understand your concerns, On 02/01, Stas Sergeev wrote: 01.02.2016 21:04, Oleg Nesterov пишет: Yes, and SS_FORCE means "I know what I do", looks very simple. But to me its not because I don't know what to

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
Stas, I probably missed something, but I don't understand your concerns, On 02/01, Stas Sergeev wrote: > > 01.02.2016 21:04, Oleg Nesterov пишет: > > Yes, and SS_FORCE means "I know what I do", looks very simple. > But to me its not because I don't know what to do with > uc_stack after SS_FORCE

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > 01.02.2016 21:52, Oleg Nesterov пишет: > >Stas, I probably missed something, but I don't understand your concerns, > > > >On 02/01, Stas Sergeev wrote: > >>01.02.2016 21:04, Oleg Nesterov пишет: > >>>Yes, and SS_FORCE means "I know what I do", looks very simple. >

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > 01.02.2016 22:29, Oleg Nesterov пишет: > >>> > >>> sigaltstack({ DISABLE | FORCE}, _ss); > >>> swapcontext(); > >>> sigaltstack(_ss, NULL); > >>> rt_sigreturn(); > >>> > >>>and if you are going to return from sighandler you do not even need the 2nd >

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 22:29, Oleg Nesterov пишет: On 02/01, Stas Sergeev wrote: 01.02.2016 21:52, Oleg Nesterov пишет: Stas, I probably missed something, but I don't understand your concerns, On 02/01, Stas Sergeev wrote: 01.02.2016 21:04, Oleg Nesterov пишет: Yes, and SS_FORCE means "I know what I

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 23:41, Oleg Nesterov пишет: On 02/01, Stas Sergeev wrote: 01.02.2016 22:29, Oleg Nesterov пишет: sigaltstack({ DISABLE | FORCE}, _ss); swapcontext(); sigaltstack(_ss, NULL); rt_sigreturn(); and if you are going to return from sighandler you do not

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > >So the sequence is > > > > // running on alt stack > > > > sigaltstack(SS_DISABLE); > > > > temporary_run_on_another_stack(); > > > > sigaltstack(SS_ONSTACK); > > > >and SS_DISABLE saves us from another SA_ONSTACK signal, right? > Yes. > Note:

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Oleg Nesterov wrote: > > > +onsigstack = on_sig_stack(sp); > > +if (ss_size == 0) { > > +switch (ss_flags) { > > +case 0: > > +error = -EPERM; > > +if (onsigstack) > > +goto out; > > +

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 21:28, Andy Lutomirski пишет: On Mon, Feb 1, 2016 at 10:16 AM, Stas Sergeev wrote: 01.02.2016 21:04, Oleg Nesterov пишет: Yes, and SS_FORCE means "I know what I do", looks very simple. But to me its not because I don't know what to do with uc_stack after SS_FORCE is

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
Honestly, I am not sure I understand what this patch does and why, and it is white space damaged, please fix. On 01/31, Stas Sergeev wrote: > > linux implements the sigaltstack() in a way that makes it impossible to > use with swapcontext(). Per the man page, sigaltstack is allowed to return >

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Oleg Nesterov
On 02/01, Stas Sergeev wrote: > > 01.02.2016 20:09, Oleg Nesterov пишет: > >OK, I didn't notice you modified save_altstack_ex() to use ->sas_ss_flags > >instead > >of sas_ss_flags()... still doesn't look right, in this case > >restore_altstack() will > >not restore sas_ss_size/sas_ss_sp and they

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 21:04, Oleg Nesterov пишет: > Yes, and SS_FORCE means "I know what I do", looks very simple. But to me its not because I don't know what to do with uc_stack after SS_FORCE is applied. I won't argue, but to me it would be better to keep this EPERM if !force. Just because we should

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Andy Lutomirski
On Mon, Feb 1, 2016 at 10:16 AM, Stas Sergeev wrote: > 01.02.2016 21:04, Oleg Nesterov пишет: >> Yes, and SS_FORCE means "I know what I do", looks very simple. > But to me its not because I don't know what to do with > uc_stack after SS_FORCE is applied. > >> I won't argue, but to

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 19:06, Oleg Nesterov пишет: Honestly, I am not sure I understand what this patch does and why, and it is white space damaged, please fix. Arrr. On 01/31, Stas Sergeev wrote: linux implements the sigaltstack() in a way that makes it impossible to use with swapcontext(). Per the man

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-02-01 Thread Stas Sergeev
01.02.2016 20:09, Oleg Nesterov пишет: On 02/01, Oleg Nesterov wrote: +onsigstack = on_sig_stack(sp); +if (ss_size == 0) { +switch (ss_flags) { +case 0: +error = -EPERM; +if (onsigstack) +goto out; +

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
01.02.2016 01:44, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 2:36 PM, Stas Sergeev wrote: 31.01.2016 23:11, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: 31.01.2016 22:03, Andy Lutomirski пишет: Also, consider a use case like yours but with *two* contexts

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 2:36 PM, Stas Sergeev wrote: > 31.01.2016 23:11, Andy Lutomirski пишет: >> >> On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: >>> >>> 31.01.2016 22:03, Andy Lutomirski пишет: Also, consider a use case like yours but with *two* contexts that use their

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
31.01.2016 23:11, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: 31.01.2016 22:03, Andy Lutomirski пишет: Also, consider a use case like yours but with *two* contexts that use their own altstack. If you go to context A, enable sigaltstack, get a signal,

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: > 31.01.2016 22:03, Andy Lutomirski пишет: >> Also, consider a use case like yours but with *two* contexts that use >> their own altstack. If you go to context A, enable sigaltstack, get a >> signal, temporarily disable, then swapcontext to

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
31.01.2016 22:03, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 9:33 AM, Stas Sergeev wrote: 31.01.2016 20:00, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: linux implements the sigaltstack() in a way that makes it impossible to use with swapcontext(). Per the

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 9:33 AM, Stas Sergeev wrote: > 31.01.2016 20:00, Andy Lutomirski пишет: >> >> On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: >>> >>> linux implements the sigaltstack() in a way that makes it impossible to >>> use with swapcontext(). Per the man page, sigaltstack is

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
31.01.2016 20:00, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: linux implements the sigaltstack() in a way that makes it impossible to use with swapcontext(). Per the man page, sigaltstack is allowed to return EPERM if the process is altering its sigaltstack

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: > > linux implements the sigaltstack() in a way that makes it impossible to > use with swapcontext(). Per the man page, sigaltstack is allowed to return > EPERM if the process is altering its sigaltstack while running on > sigaltstack. > This

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 9:33 AM, Stas Sergeev wrote: > 31.01.2016 20:00, Andy Lutomirski пишет: >> >> On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: >>> >>> linux implements the sigaltstack() in a way that makes it impossible to >>> use with swapcontext(). Per

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
31.01.2016 22:03, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 9:33 AM, Stas Sergeev wrote: 31.01.2016 20:00, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: linux implements the sigaltstack() in a way that makes it impossible to use

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 2:36 PM, Stas Sergeev wrote: > 31.01.2016 23:11, Andy Lutomirski пишет: >> >> On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: >>> >>> 31.01.2016 22:03, Andy Lutomirski пишет: Also, consider a use case like yours but with *two*

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
01.02.2016 01:44, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 2:36 PM, Stas Sergeev wrote: 31.01.2016 23:11, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: 31.01.2016 22:03, Andy Lutomirski пишет: Also, consider a use case like

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
31.01.2016 23:11, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: 31.01.2016 22:03, Andy Lutomirski пишет: Also, consider a use case like yours but with *two* contexts that use their own altstack. If you go to context A, enable sigaltstack, get a

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 12:08 PM, Stas Sergeev wrote: > 31.01.2016 22:03, Andy Lutomirski пишет: >> Also, consider a use case like yours but with *two* contexts that use >> their own altstack. If you go to context A, enable sigaltstack, get a >> signal, temporarily disable, then

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Stas Sergeev
31.01.2016 20:00, Andy Lutomirski пишет: On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: linux implements the sigaltstack() in a way that makes it impossible to use with swapcontext(). Per the man page, sigaltstack is allowed to return EPERM if the process is altering its

Re: [PATCH 4/4] sigaltstack: allow disabling and re-enabling sas within sighandler

2016-01-31 Thread Andy Lutomirski
On Sun, Jan 31, 2016 at 8:28 AM, Stas Sergeev wrote: > > linux implements the sigaltstack() in a way that makes it impossible to > use with swapcontext(). Per the man page, sigaltstack is allowed to return > EPERM if the process is altering its sigaltstack while running on >