Re: [PATCHv4 5/6] Allow setting O_NONBLOCK flag for new sockets
From: H. Peter Anvin
Date: Mon Nov 26 2007 - 14:08:27 EST
Ingo Molnar wrote:
So it's not like sys_indirect() would break some magic pristine state of
a flat parameter space - on the contrary, most of the nontrivial
syscalls take pointers to structures or pointers to streams of
information. The parameter count histogram i believe further underlines
this point:
#args #syscalls
-----------------
0 22
1 51
2 83
3 85
4 40
5 23
6 8
the natural 'center' of function call parameter counts is around 1-4
parameters, and that is natural. (most operators that the human brain
prefers to operate with are like that - having higher complexity than
that often defeats the purpose of getting an API used by ... humans.)
I was preparing a response to Linus' email, but I really feel this needs
to be addressed specifically.
When it comes to dealing with the operator-visible state, what matters
is what happens on the API level, NOT on the system call level.
Furthermore, the proposed sys_indirect interface just means that there
are parameters hidden from immediately view, even though they
fundamentally change the operation performed, and that it is much harder
to correlate, say, the output of strace(1) with what actually happened
in the program. So from a *psychological* point of view, this seems to
be an insane design choice.
-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/