From owner-freebsd-current@FreeBSD.ORG Sat Aug 2 10:41:48 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8FA71355; Sat, 2 Aug 2014 10:41:48 +0000 (UTC) Received: from mail-qa0-x231.google.com (mail-qa0-x231.google.com [IPv6:2607:f8b0:400d:c00::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 40509210B; Sat, 2 Aug 2014 10:41:48 +0000 (UTC) Received: by mail-qa0-f49.google.com with SMTP id dc16so5010224qab.22 for ; Sat, 02 Aug 2014 03:41:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=pUvlUmoH6gqwFdCgf1z+dVBlJvqBS5DrKRCd3reGE94=; b=ajcWe0dN0hjMAtZ0GIU2C8dvPKLrn3JiTVGdAZs51xP/3Ddp1cfwY9uORfOgI+Dvoo ouaz7ahXBlLLfhEQwR70xNNXLMpebLi5pGTbtBXapKd81/7jzyQsNT9ULfc6rP5MyEoN c0ScvcBKXturU/SMrJqKtr4YNt8BvD/p2D6Le07qXCTxBaDlwHxXzhLHcvH3eKtqYmZR uINajmgwCJJxDwpk2IAjIW0DhUICWu2dH/7hKTehWTN8IXnb1SNwwlFUifDbO+be8RVs EkrDULX5t3R3BJXV23b4rOShW7BcRTOCbSP/nG9sYisQNxTjjpwUSyHJiFp9KF8voA6D yx9A== X-Received: by 10.140.42.181 with SMTP id c50mr6496180qga.17.1406976107243; Sat, 02 Aug 2014 03:41:47 -0700 (PDT) MIME-Version: 1.0 Sender: fedor.indutny@gmail.com Received: by 10.96.198.227 with HTTP; Sat, 2 Aug 2014 03:41:27 -0700 (PDT) In-Reply-To: References: From: Fedor Indutny Date: Sat, 2 Aug 2014 14:41:27 +0400 X-Google-Sender-Auth: MvhClYFHK9b7Gc2XjYWZnQ8-KC8 Message-ID: Subject: Re: KQueue 0-length UDP packet To: freebsd-current@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: Mark Johnston X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Aug 2014 10:41:48 -0000 Guess I know the answer: https://cloudup.com/cCkjLhI4M2r Basically, OSX is checking `kn_data` and FreeBSD is using `so->so_rcv.sb_cc`. Thank you anyway! On Sat, Aug 2, 2014 at 1:39 PM, Fedor Indutny wrote: > Hello! > > I'm trying to figure out, why this code: > > https://github.com/indutny/0-udp > > Which basically sends a 0-length UDP packet to a server and polls > kqueue events on the server fd. > > Return 1 kevent on FreeBSD, and blocks indefinitely without > returning any events on OSX. > > So far I could see that FreeBSD and OSX are treating NOTE_LOWAT > differently: > > * > https://github.com/opensource-apple/xnu/blob/2fa84067f6cdeb23267f877ca4fd26201316da1b/bsd/kern/uipc_socket.c#L4461 > * > https://github.com/freebsd/freebsd/blob/6901832d8588537c81afbdb91d1a22deb5582c47/sys/kern/uipc_socket.c#L3163-L3164 > > FreeBSD's NOTE_LOWAT is overriding SO_RCVLOWAT, and OSX is using > SO_RVCLOWAT as a minimum value. But, since NOTE_LOWAT is not > involved here by default, I'm failing to see where exactly this > event could pass through kqueue filter. > > Could anyone with UDP and/or KQueue implementation knowledge > share some insights with me? > > Thank you very much! > Fedor. > > (NOTE: Duplicate, first email wasn't posted, because I wasn't subscribed > to the ML) >