Re: [patch flood] Debugging patches

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

 



On Sat, Jun 16, 2001 at 12:41:02PM -0700, Daniel Jacobowitz wrote:

> The biggest one was the fact that passing arguments to the inferior in
> floating point registers just didn't work.  I tracked this down to at least
> three separate problems:
>   - We would set last_task_used_math without clearing the ST0_CU1 bit in
>     the previous task owning the FPU.  When that previous task swapped
>     in again, it would use the existing FP registers, and lazy_fpu_switch
>     would never be called.  This happened in signal.c and in ptrace.c.

First signal.c segment - calling restore_fp_context should result in a
proper FPU context switch.

>   - ptrace didn't look for the FP registers in the right places.  This's
>     been broken since the FPU emulator merge a while back.

>   - We would create new processes with the ST0_CU1 bit already set if
>     their parent process had it set.

No, copy_thread clears CU1.

(Have to breed about this patch a bit more, stuff for the plane ...)

> Of course, the lazy switching isn't quite as useful as it could be, since
> every program will eventually use the FPU if not build -msoft-float - I
> think it's happening in glibc.  But we can possibly work around that later. 
> It still does save a great number of switches, so it's worthwhile - when it
> works.

Newer libcs shouldn't try to initialize $fcr31 to zero because that's
already the default.

> Other patches in my directory that I'm submitting along with that one:
>  - kgdb-crash-resistant.diff
>  - mips-gdb-with-kgdb.diff
>  - mips-rtsignal.diff

These three look good, applied.

  Ralf


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux