Re: Calling syscalls from x86-64 kernel results in a crash on Opteron machines

Constantine Gavrilov
2004-09-13T15:20:07Z

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.

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.

--
----------------------------------------
Constantine Gavrilov
Kernel Developer
Qlusters Software Ltd
1 Azrieli Center, Tel-Aviv
Phone: +972-3-6081977
Fax: +972-3-6081841
----------------------------------------