2010-12-05 11:15:16

by Geert Uytterhoeven

[permalink] [raw]
Subject: Signal patchset (was: Re: aranym bug, manifests as "ida_remove called for id=13" on recent kernels)

On Tue, Nov 2, 2010 at 16:30, Geert Uytterhoeven <[email protected]> wrote:
> On Mon, Oct 11, 2010 at 16:24, Al Viro <[email protected]> wrote:
>> BTW, any comments on signal patchset?  Seems to work here, including the
>> stack expansion fixes, but that's on aranym.  I'll try to resurrect the
>> real hardware, but that may take a while.  If somebody could give it a beating
>> in the meanwhile...
>
> I tried it on my Amiga 4000/040.
> Without your patches, gdb gets stuck in state D+ when reaching a breakpoint:
>
> | cassandra:~# gdb /tmp/hello
> | GNU gdb 6.4.90-debian
> | Copyright (C) 2006 Free Software Foundation, Inc.
> | GDB is free software, covered by the GNU General Public License, and you are
> | welcome to change it and/or distribute copies of it under certain conditions.
> | Type "show copying" to see the conditions.
> | There is absolutely no warranty for GDB.  Type "show warranty" for details.
> | This GDB was configured as "m68k-linux-gnu"...Using host
> libthread_db library "/lib/libthread_db.so.1".
> |
> | (gdb) break main
> | Breakpoint 1 at 0x800003fc: file /home/geert/hello.c, line 6.
> | (gdb) run
> | Starting program: /tmp/hello
> |
> | Breakpoint 1, main (argc=1, argv=0xefbeedb4) at /home/geert/hello.c:6
>
> With your patches, it works a bit better:
>
> | cassandra:~# gdb /tmp/hello
> | GNU gdb 6.4.90-debian
> | Copyright (C) 2006 Free Software Foundation, Inc.
> | GDB is free software, covered by the GNU General Public License, and you are
> | welcome to change it and/or distribute copies of it under certain conditions.
> | Type "show copying" to see the conditions.
> | There is absolutely no warranty for GDB.  Type "show warranty" for details.
> | This GDB was configured as "m68k-linux-gnu"...Using host
> libthread_db library "/lib/libthread_db.so.1".
> |
> | (gdb) break main
> | Breakpoint 1 at 0x800003fc: file /home/geert/hello.c, line 6.
> | (gdb) run
> | Starting program: /tmp/hello
> |
> | Breakpoint 1, main (argc=1, argv=0xefcc5db4) at /home/geert/hello.c:6
> | 6         printf("Hello, world! [C]\n");
> | (gdb) cont
> | Continuing.
> | Hello, world! [C]
> |
> | Program exited normally.
> | (gdb) run
> | Starting program: /tmp/hello
> |
> | Breakpoint 1, main (argc=1, argv=0xef85bdb4) at /home/geert/hello.c:6
> | 6         printf("Hello, world! [C]\n");
> | (gdb) next
> | Hello, world! [C]
>
> After which gdb is stuck in S+, and /tmp/hello in t.

Unless someone objects, I'm inclined to apply Al's patchset, as it improves the
situation anyway.

OK?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


2010-12-15 10:10:39

by Al Viro

[permalink] [raw]
Subject: Re: Signal patchset (was: Re: aranym bug, manifests as "ida_remove called for id=13" on recent kernels)

On Sun, Dec 05, 2010 at 12:15:10PM +0100, Geert Uytterhoeven wrote:

> Unless someone objects, I'm inclined to apply Al's patchset, as it improves the
> situation anyway.
>
> OK?

FWIW, there's an m68knommu counterpart (ACKed by gerg a while ago). The
entire bunch is on ftp.linux.org.uk/pub/people/viro/m68k-signals - both m68k
and m68knommu sets. I don't know how you guys would prefer it done, since
there's a trivial dependency between m68k and m68knommu parts of series -
the former has
+#ifndef __uClinux__
+#define __ARCH_WANT_SYS_RT_SIGSUSPEND
+#endif
in unistd.h and the latter does
-#ifndef __uClinux__
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
-#endif
Both parts switch to generic sys_rt_sigsuspend(), for mmu and nommu resp.,
so they need __ARCH_WANT_SYS_RT_SIGSUSPEND defined as soon as conversion
is done. Other than that they are independent.

2010-12-16 13:28:45

by Greg Ungerer

[permalink] [raw]
Subject: Re: Signal patchset

On 15/12/10 20:10, Al Viro wrote:
> On Sun, Dec 05, 2010 at 12:15:10PM +0100, Geert Uytterhoeven wrote:
>
>> Unless someone objects, I'm inclined to apply Al's patchset, as it improves the
>> situation anyway.
>>
>> OK?
>
> FWIW, there's an m68knommu counterpart (ACKed by gerg a while ago). The
> entire bunch is on ftp.linux.org.uk/pub/people/viro/m68k-signals - both m68k
> and m68knommu sets. I don't know how you guys would prefer it done, since
> there's a trivial dependency between m68k and m68knommu parts of series -
> the former has
> +#ifndef __uClinux__
> +#define __ARCH_WANT_SYS_RT_SIGSUSPEND
> +#endif
> in unistd.h and the latter does
> -#ifndef __uClinux__
> #define __ARCH_WANT_SYS_RT_SIGSUSPEND
> -#endif
> Both parts switch to generic sys_rt_sigsuspend(), for mmu and nommu resp.,
> so they need __ARCH_WANT_SYS_RT_SIGSUSPEND defined as soon as conversion
> is done. Other than that they are independent.

I can make sure to send to Linus after Geert. Unless Geert you
want to take and send both the m68k and m68knommu changes?

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: [email protected]
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close, FAX: +61 7 3891 3630
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com