Re: Invoking a system call from within the kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 18 Nov 2017 13:15:27 -0500, Demi Marie Obenour said:

> However, the ioctl I actually want to implement (see above) does the
> system call asynchronously.  That isnâ??t possible using the existing
> APIs.

Ever consider that it's because there's no clear semantics to what
executing an arbitrary syscall asyncronously even *means*?

What doe an async getuid() mean?  For bonus points, what does it
return if the program does an async getuid(), and then does a
setuid() call *before the async call completes*?

What is the return value of an async call that fails?  How is it
returned, and how do you tell if a negative return code is
from the async code failing, or the syscall failing?

> See above :)  Basically, I am trying to improve performance and reduce
> complexity of programs that need to do a lot of buffered file I/O.

We already have an AIO subsystem for exactly this.  And eventfd's, and
poll(), and a bunch of other stuff.

And they improve performance, but increase complexity.  It's pretty
hard to make

	while (rc=read(....) > 0)
		rc2 = write(....)

less complex.  Catching the return of an async call makes it more complex.

Attachment: pgpmeOawpgtS3.pgp
Description: PGP signature

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux