Re: [RFC] arm64: kexec_file_load support
From: Dave Young <hidden>
Date: 2016-07-11 08:15:07
Also in:
kexec, linux-arm-kernel, lkml
On 07/11/16 at 04:19pm, AKASHI Takahiro wrote:
On Fri, Jul 08, 2016 at 11:48:44AM -0300, Thiago Jung Bauermann wrote:quoted
Am Donnerstag, 07 Juli 2016, 14:12:45 schrieb Dave Young:quoted
If so maybe change a bit from your precious mentioned 7 args proposal like below? struct kexec_file_fd { enum kexec_file_type; int fd; } struct kexec_fdset { int nr_fd; struct kexec_file_fd fd[0]; } int kexec_file_load(int kernel_fd, int initrd_fd, unsigned long cmdline_len, const char *cmdline_ptr, unsigned long flags, struct kexec_fdset *extra_fds);Is there a way for the kernel to distinguish whether the process passed 5 or 6 arguments? How can it know whether extra_fds is a valid argument or just garbage? I think we have to define a new flag KEXEC_FILE_EXTRA_FDS so that the process can signal that it is using the new interface.Good point. What I had in my mind is "open" system call. Glibc's implementation of open() checks for the second argument, flags, to determine whether or not the third argument, mode, is required. So our current consensus is that, for the time being, we will extend the existing system call interface to allow extra file descriptors, and *if* we really need a different type of parameters in the future, we will add another system call.
Sounds good to me.
If we all agree, I can post a kernel patch for this change as a RFC. (I've already verified it with my prototype of kexec_file_load support on arm64.) Thanks, -Takahiro AKASHIquoted
-- []'s Thiago Jung Bauermann IBM Linux Technology Center
Thanks Dave