lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 26 Aug 2008 21:37:49 +0200
From:	Michael Noisternig <mnoist@...y.sbg.ac.at>
To:	linux-kernel@...r.kernel.org
Subject: Re: (e)poll and (rd)hup questions

David wrote:
> There's nothing synchronous in epoll WRT userspace. If you use epoll LT, 
> you don't need RDHUP. RDHUP was introduced to deal with special 
> connection states and epoll ET. Take a peek here for a detailed 
> description about how/why RDHUP was introduced:
> 
> http://lkml.org/lkml/2003/7/12/116
> 
> 
> - Davide

Thanks a lot for the explanation about RDHUP. Now that leaves me with 
only one question which I'm still not sure about: When I get HUP can 
there still be data in the kernel buffer to read out? (I guess so.)

Thanks again,
Michael

--Original message--
Michael Noisternig schrieb:
> Hello folks,
> 
> I hope this is a right place to ask this question. (Sorry if it isn't, 
> please hint me where to post in that case.)
> 
> This has been bugging me for quite some while now. I'm using epoll in 
> default level-triggered mode. I'm polling for input, output, rdhup, and 
> forcibly for hup. I figured that when I get EPOLLRDHUP that doesn't mean 
> there is no more data to read, presumably I must empty the kernel buffer 
> by continously reading from the fd until I get zero as a result 
> indicating rdhup. This means EPOLLRDHUP is delivered asynchronously and 
> thus is pretty useless to me.
> 
> On the other hand, EPOLLHUP seems to be delivered synchronously. If it 
> isn't then this means I get constantly notified about a closed fd until 
> I have read all data from the kernel buffer and remove the fd from the 
> epoll set (which makes being forced to hup notifications useless to me).
> 
> (And no, don't tell me to use edge-triggered mode, I have reasons to use 
> level-triggered.)
> 
> Question: Is my observation correct that EPOLLRDHUP is delivered 
> asynchronously in contrast to EPOLLHUP? Or is EPOLLHUP delivered 
> asynchronously as well?
> 
> Thanks, anwers would help a lot!!!
> Michael
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ