[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Zero-sized reads from XenBus block
On 03/02/2016 11:35 AM, Roger Pau Monné wrote: El 2/3/16 a les 17:13, Wei Liu ha escrit:CC Linux kernel and FreeBSD maintainers. On Wed, Mar 02, 2016 at 12:29:26AM +0300, Sergei Lebedev wrote:Hi list, I’m not sure if this is the expected behaviour, but it seems zero-sized reads from /dev/xen/xenbus block. Here’s sample code in Python import osfd = os.open("/dev/xen/xenbus", os.O_RDWR)os.read(fd, 0) # Blocks. The issue is not language-specific, similar code in C blocks as well.I've tested your code on FreeBSD (after replacing /dev/xen/xenbus with /dev/xen/xenstore), and it doesn't block there. AFAICT this is because 0-size reads never get to the device "read" routine on FreeBSD, or else it would block. This is how xenbus driver is designed --- it always blocks until something is written there. It should indeed return zero right away but I wonder whether someone might count on current implementation (in the toolstack or elsewhere). Based on FreeBSD behavior I'd think this shouldn't be the case. -boris _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |