From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Luming Yu <luming.yu@shingroup.cn>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
mpe@ellerman.id.au, npiggin@gmail.com, jialong.yang@shingroup.cn,
luming.yu@gmail.com
Subject: Re: [PATCH 1/2] powerpc/entry: convert to common and generic entry
Date: Fri, 13 Sep 2024 08:54:12 +0200 [thread overview]
Message-ID: <95ced963-b584-4ccf-ba34-8f2ba99172f4@csgroup.eu> (raw)
In-Reply-To: <153FD6B5CE4F97D9+ZuOYDQ-iHIIwJjbh@HX09040029.powercore.com.cn>
Le 13/09/2024 à 03:40, Luming Yu a écrit :
> On Thu, Sep 12, 2024 at 12:23:29PM +0200, Christophe Leroy wrote:
>>
>>
>> Le 12/09/2024 à 10:24, Luming Yu a écrit :
>>> From: Yu Luming <luming.yu@gmail.com>
>>>
>>> convert powerpc entry code in syscall and fault to use syscall_work
>>> and irqentry_state as well as common calls from generic entry infrastructure.
>>>
>>> Signed-off-by: Luming Yu <luming.yu@shingroup.cn>
>>> ---
>>> arch/powerpc/Kconfig | 1 +
>>> arch/powerpc/include/asm/hw_irq.h | 5 +++++
>>> arch/powerpc/include/asm/processor.h | 6 ++++++
>>> arch/powerpc/include/asm/syscall.h | 5 +++++
>>> arch/powerpc/include/asm/thread_info.h | 1 +
>>> arch/powerpc/kernel/syscall.c | 6 +++++-
>>> arch/powerpc/mm/fault.c | 5 +++++
>>> 7 files changed, 28 insertions(+), 1 deletion(-)
>>
>> There is another build problem:
>>
>> CC kernel/entry/common.o
>> kernel/entry/common.c: In function 'irqentry_exit':
>> kernel/entry/common.c:335:21: error: implicit declaration of function
>> 'regs_irqs_disabled'; did you mean 'raw_irqs_disabled'?
>> [-Werror=implicit-function-declaration]
>> 335 | } else if (!regs_irqs_disabled(regs)) {
>> | ^~~~~~~~~~~~~~~~~~
>> | raw_irqs_disabled
>>
>>
>> You have put regs_irqs_disabled() in a section dedicated to PPC64, so it
>> fails on PPC32.
>>
>>
>> After fixing this problem and providing an empty asm/entry-common.h it is
>> now possible to build the kernel. But that's not enough, the board is stuck
>> after:
>>
>> ...
>> [ 2.871391] Freeing unused kernel image (initmem) memory: 1228K
>> [ 2.877990] Run /init as init process
>
> Thanks for these questions. :-)
> I haven't gotten chance to run it in ppc32 qemu.
> the common syscall trace enter lost this hunk
> - if (!is_32bit_task())
> - audit_syscall_entry(regs->gpr[0], regs->gpr[3], regs->gpr[4],
> - regs->gpr[5], regs->gpr[6]);
> - else
> - audit_syscall_entry(regs->gpr[0],
> - regs->gpr[3] & 0xffffffff,
> - regs->gpr[4] & 0xffffffff,
> - regs->gpr[5] & 0xffffffff,
> - regs->gpr[6] & 0xffffffff);
> which I don't understand whether we need a arch callbacks for it.
I don't thing so.
As far as I can see, audit_syscall_entry() is called by
syscall_enter_audit() in kernel/entry/common.c
And the masking of arguments based on is_32bit_task() is done in
syscall_get_arguments() with is called by
syscall_enter_audit() just before calling audit_syscall_entry() and
which is an arch callback that does the same as the removed hunk.
>
> Before I sent out the RFC patch set, the very limited compile and boot test goes well with a ppc64 qemu VM. Surely, there will be a lot of test, debug and following up patch set update that is necessary to make it a complete convert.
Even on ppc64 it doesn't build, at the first place because
arch/powerpc/include/asm/entry-common.h is missing in your patch. Did
you forget to 'git add' it ?
And same as with PPC32, when I build PPC64 with an empty
asm/entry-common.h, it doesn't work. So, I guess you had some needed
code in that file and you have to send it.
next prev parent reply other threads:[~2024-09-13 6:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-12 8:24 Luming Yu
2024-09-12 9:11 ` Christophe Leroy
2024-09-12 9:35 ` Christophe Leroy
2024-09-12 10:23 ` Christophe Leroy
2024-09-13 1:40 ` Luming Yu
2024-09-13 6:54 ` Christophe Leroy [this message]
2024-09-13 7:38 ` Luming Yu
2024-09-13 8:30 ` Christophe Leroy
2024-09-13 12:02 ` Luming Yu
2024-09-13 12:15 ` Christophe Leroy
2024-09-14 2:22 ` Luming Yu
2024-09-18 13:47 ` Christophe Leroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=95ced963-b584-4ccf-ba34-8f2ba99172f4@csgroup.eu \
--to=christophe.leroy@csgroup.eu \
--cc=jialong.yang@shingroup.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=luming.yu@gmail.com \
--cc=luming.yu@shingroup.cn \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®