Re: [PATCH v2 0/2] MIPS: convert to generic entry

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

 



On Tue, 14 Sept 2021 at 16:54, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> wrote:
>
>
>
> 在 2021/9/14 2:50, Feiyang Chen 写道:
> > Convert MIPS to use the generic entry infrastructure from
> > kernel/entry/*.
> >
> > v2: Use regs->regs[27] to mark whether to restore all registers in
> > handle_sys and enable IRQ stack.
> Hi Feiyang,
>
> Thanks for your patch, could you please expand how could this improve
> the performance?
>

Hi, Jiaxun,

We always restore all registers in handle_sys in the v1 of the
patchset. Since regs->regs[27] is marked where we need to restore all
registers, now we simply use it as the return value of do_syscall to
determine whether we can only restore partial registers in handle_sys.

+       move    a0, sp
+       jal     do_syscall
+       beqz    v0, 1f                          # restore all registers?
+       nop
+
+       .set    noat
+       RESTORE_TEMP
+       RESTORE_STATIC
+       RESTORE_AT
+1:     RESTORE_SOME
+       RESTORE_SP_AND_RET
+       .set    at

Thanks,
Feiyang

> Thanks.
> - Jiaxun
> >
> > Feiyang Chen (2):
> >    MIPS: convert syscall to generic entry
> >    MIPS: convert irq to generic entry
> >
> >   arch/mips/Kconfig                         |   1 +
> >   arch/mips/include/asm/entry-common.h      |  13 ++
> >   arch/mips/include/asm/irqflags.h          |  42 ----
> >   arch/mips/include/asm/ptrace.h            |   8 +-
> >   arch/mips/include/asm/sim.h               |  70 -------
> >   arch/mips/include/asm/stackframe.h        |   8 +
> >   arch/mips/include/asm/syscall.h           |   5 +
> >   arch/mips/include/asm/thread_info.h       |  17 +-
> >   arch/mips/include/uapi/asm/ptrace.h       |   7 +-
> >   arch/mips/kernel/Makefile                 |  14 +-
> >   arch/mips/kernel/entry.S                  | 143 +-------------
> >   arch/mips/kernel/genex.S                  | 150 +++------------
> >   arch/mips/kernel/head.S                   |   1 -
> >   arch/mips/kernel/linux32.c                |   1 -
> >   arch/mips/kernel/ptrace.c                 |  78 --------
> >   arch/mips/kernel/r4k-bugs64.c             |  14 +-
> >   arch/mips/kernel/scall.S                  | 136 +++++++++++++
> >   arch/mips/kernel/scall32-o32.S            | 223 ---------------------
> >   arch/mips/kernel/scall64-n32.S            | 107 ----------
> >   arch/mips/kernel/scall64-n64.S            | 116 -----------
> >   arch/mips/kernel/scall64-o32.S            | 221 ---------------------
> >   arch/mips/kernel/signal.c                 |  59 +-----
> >   arch/mips/kernel/signal_n32.c             |  15 +-
> >   arch/mips/kernel/signal_o32.c             |  29 +--
> >   arch/mips/kernel/syscall.c                | 148 +++++++++++---
> >   arch/mips/kernel/syscalls/syscall_n32.tbl |   8 +-
> >   arch/mips/kernel/syscalls/syscall_n64.tbl |   8 +-
> >   arch/mips/kernel/syscalls/syscall_o32.tbl |   8 +-
> >   arch/mips/kernel/traps.c                  | 225 ++++++++++++++++------
> >   arch/mips/kernel/unaligned.c              |  19 +-
> >   arch/mips/mm/c-octeon.c                   |  15 ++
> >   arch/mips/mm/cex-oct.S                    |   8 +-
> >   arch/mips/mm/fault.c                      |  12 +-
> >   arch/mips/mm/tlbex-fault.S                |   7 +-
> >   34 files changed, 594 insertions(+), 1342 deletions(-)
> >   create mode 100644 arch/mips/include/asm/entry-common.h
> >   delete mode 100644 arch/mips/include/asm/sim.h
> >   create mode 100644 arch/mips/kernel/scall.S
> >   delete mode 100644 arch/mips/kernel/scall32-o32.S
> >   delete mode 100644 arch/mips/kernel/scall64-n32.S
> >   delete mode 100644 arch/mips/kernel/scall64-n64.S
> >   delete mode 100644 arch/mips/kernel/scall64-o32.S
> >
>




[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux