Re: Calling syscalls from x86-64 kernel results in a crash on Opteronmachines
From: Brian Gerst
Date: Mon Sep 13 2004 - 12:30:12 EST
Constantine Gavrilov wrote:
Christoph Hellwig wrote:
On Mon, Sep 13, 2004 at 05:04:17PM +0300, Constantine Gavrilov wrote:
Hello:
We have a piece of kernel code that calls some system calls in kernel
context (
Which you shouldn't do in the first place.
Function kernel_thread() on i386 is implemented by putting the args to
appropriate regs and calling int 0x80, resulting in a system call
clone() on i386.
It's gone in 2.6, in favor of calling do_fork() directly.
I have also found the "syscall" instruction in x86-64 kernel specific
code (it does not call _syscall() macros directly, though). So,
"shouldn't do" is a bit too strong.
What I am writing is an application, and not interface. As such, it is
not much different from its requierements from a user-space application.
If user-space application may call system calls, why a kernel space
application cannot?
And BTW, kernel-space applications have their own place even if the
concept seems foreign to you.
What are you trying to do that can't be done in user space? The only
possible reason for a kernel space app is for performance (like knfsd),
at the cost of risking system stability and security.
--
Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/