On 28/06/2013 17:38, Andi Kleen wrote:
diff --git a/fs/select.c b/fs/select.c index 79b876e..3654075 100644 --- a/fs/select.c +++ b/fs/select.c @@ -402,7 +402,7 @@ int do_select(int n, fd_set_bits *fds, struct timespec *end_time) poll_table *wait; int retval, i, timed_out = 0; unsigned long slack = 0; - unsigned int ll_flag = POLL_LL; + unsigned int ll_flag = ll_get_flag();Is that a global flag? That's still the wrong level. It should look at something in the file descriptor (preferably without fetching any new cache lines)
There is a global flag that decides if we even try to find supported files (sockets). If it is on we look to see if anyone will return POLL_LL. at the individual socket level, you need both the socket option to be on, and the queue data to be available for it to return POLL_LL. I wanted to find a way to control this at the time the user calls poll(). I was not able to find any simple way of doing it that way. I'm open to suggestion. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

