Re: m68k, signals and single-stepping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, 30 Sep 2010, Al Viro wrote:

On Thu, Sep 30, 2010 at 02:34:11PM +0200, Andreas Schwab wrote:

Um...  What's wrong with doing that from trap_c()?

IIRC that was the only way to make gdb work correctly wrt. single 
stepping over system calls and into signal handlers.  If anyone wants 
to test it with today's kernel on real hardware, please go ahead.

Ouch...  Resurrecting that 840av box will be interesting - most likely a 
dead battery, but... ;-/

My 840av has a weird issue where it powers up and lights the front LED but 
doesn't POST, chime, etc. Eventually (after waiting 2 minutes? 15 
minutes... it varies) I can then reset it with ctrl-apple-power key and it 
comes good. New battery didn't affect this. I've been considering swapping 
in a PSU from a pmac 8500 but maybe it just needs some new capacitors.

And yes, I certainly understand why qemu testing is not sufficient for 
that kind of stuff - subtle enough to make the odds of stepping on qemu 
bugs...

I can test patches for you on a quadra 700 (MC68040) that I have set up at 
the moment. My time is in demand at present, but if you've tested them on 
aranym, and you can tell me what to look for, it shouldn't take too long.

What are the userland pre-requisites for this kind of testing? I have 
etch-m68k handy, but it is getting long in the tooth (that is, it 
pre-dates the siginfo patches that Maxim wrote, all of the ptrace work 
that Andreas has done recently, and probably a bunch of other related 
stuff that I didn't notice).

Finn


Oh, well.  Anyway, the obvious ones I've got are:
	* setup_frame/setup_rt_frame should report failure, so that
handle_signal() wouldn't block signals in that case (losing the original
mask, since it's not stored anywhere in that case)
	* notify_resume isn't handled at all
	* sigsuspend would be better off with ERESTARTNOHAND scheme.

FWIW, I wonder if it would be better to have handle_signal() call
send_sig() and clear regs.SR.T1 and forget about checking return
value of do_signal(); do_delayed_trace is still needed, since currently
there are two places that can reach it, but it'd make the code around
calling do_signal() simpler while preserving the current behaviour...
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux