Are you passing the arguments to execve correctly? Usually the EFAULT error occurs, cause the argument format to execve is not correct and the kernel is unable to interpret the executable that needs to be launched, or the parameters that need to be passed to the new process. Just an example: http://www.linuxquestions.org/questions/programming-9/execve-alwayse-produce... On Thu, Apr 23, 2015 at 9:00 AM <kernelnewbies-request@kernelnewbies.org> wrote:
Send Kernelnewbies mailing list submissions to kernelnewbies@kernelnewbies.org
To subscribe or unsubscribe via the World Wide Web, visit http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies or, via email, send a message with subject or body 'help' to kernelnewbies-request@kernelnewbies.org
You can reach the person managing the list at kernelnewbies-owner@kernelnewbies.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Kernelnewbies digest..."
Today's Topics:
1. How can I fetch the files likely directory /usr/src/kernels/<kernel version> from kernel source tree? (tianlilai) 2. execve error (Rohith)
----------------------------------------------------------------------
Message: 1 Date: Thu, 23 Apr 2015 17:59:56 +0800 From: tianlilai <laitianli2015@outlook.com> Subject: How can I fetch the files likely directory /usr/src/kernels/<kernel version> from kernel source tree? To: kernelnewbies@kernelnewbies.org Message-ID: <BLU436-SMTP88F0913B3897AE70E7C950A9ED0@phx.gbl> Content-Type: text/plain; charset="utf-8"; format=flowed
Hi,I have built the kernel source tree and running in PC mechine.Now I want to fetch the files likely directory /usr/src/kernels/<kernel version> from this kernel source tree.How can I do? Thanks very much!
------------------------------
Message: 2 Date: Thu, 23 Apr 2015 17:55:22 +0530 From: Rohith <itsnotrohit@gmail.com> Subject: execve error To: kernelnewbies@kernelnewbies.org Message-ID: < CABsTBT6S0vRNFo0bxxBcWDx3k8JMpzbYyKbbUB8oxT-W+8Tr-A@mail.gmail.com> Content-Type: text/plain; charset="utf-8"
Hi all,
I'm facing a strange issue with execve. It fails with -EFAULT intermittently. I found that whenever it failed the stack allocated to the process is in the last page of the CONFIG_TASK_SIZE.
For example, if CONFIG_TASK_SIZE is set to 0x4000_0000, the process would fail in execve if the stack happens to be in the page:
3ffdf000-40000000 rw-p 00000000 00:00 0 [stack]
I tried changing CONFIG_TASK_SIZE=0x30000000 and the process this time fails at the end 0x30000000 address.
I also found that the execve seem to use the largest stack address (STACK_TOP_MAX, function __bprm_mm_init(), fs/exec.c) while copying argv/envp to the new process space.
I don't know how to debug further. I feel that the user process stack should never be allocated at the CONFIG_TASK_SIZE? Any idea or suggestion on how to debug further, please tell me.
thanks, rohit