Messages in this thread | | | Date | Mon, 13 Sep 2004 13:21:32 -0400 | From | Brian Gerst <> | Subject | Re: Calling syscalls from x86-64 kernel results in a crash on Opteron machines |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |